Фон
У меня есть приложение с несколькими пользовательскими текстовыми представлениями.Эти четыре пользовательских TextViews настроены так:
public class TextView_Light extends android.support.v7.widget.AppCompatTextView {
public TextView_Light(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
init();
}
public TextView_Light(Context context, AttributeSet attrs) {
super(context, attrs);
init();
}
public TextView_Light(Context context) {
super(context);
init();
}
public void init() {
Typeface tf = Typeface.createFromAsset(getContext().getAssets(), "fonts/Roboto-Light.ttf");
setTypeface(tf ,1);
}}
У меня есть TextView_Bold
, TextView_Light
, TextView_Regular
и TextView_Thin
.Каждый из них использует другой шрифт, который сохраняется в assets/fonts
Я использую TextViews следующим образом:
<de.mayr.wap.app.helper.TextView_Light
android:id="@+id/textView_Light7"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:text="@string/overviewViaBarcode"
android:textSize="16sp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"/>
Когда приложение запускается, и в первый раз отображается всевыглядит великолепно, вот так:
Проблема
В этом представлении пользователь щелкает по одной из таблиц, появляется Dialog
, гдепользователь вводит в некоторые данные.При сохранении вызывается метод представления onResume
, который вызывает веб-сервис и т. Д., Например:
@Override
public void onResume() {
super.onResume();
callSerNrWS();
}
public void callSerNrWS() {
if (CheckNetwork.isNetworkAvailable(getContext())) {
final AsyncResponseFortschritt<ResponseObject<PruefauftraegeVO>> response = new AsyncResponseFortschritt<ResponseObject<PruefauftraegeVO>>() {
@Override
public void processFinishSerNr(ResponseObject<PruefauftraegeVO> output) {
anw = createPruefAnwArraylist();
seriennummerVO = findDataToSerNr();
adapt = new PruefAnwAdapter(getContext(), anw, seriennummerVO);
pruefListView.setAdapter(adapt);
setVisibilityLoadAnimation(View.GONE);
if (output.getException() != null && !output.getException().isEmpty())
AlertCreator.makeFailAlert(R.string.titelKeinFortschritt, R.string.textKeinFortschritt,getContext());
}
@Override
public void processStartSerNr() {
setVisibilityLoadAnimation(View.VISIBLE);
}
};
AsyncCallSerNrWS ws = new AsyncCallSerNrWS(response, pruefauftraegeVO);
ws.execute();
}
}
И после этого в 90% случаев появляется один или несколько TextView
, которые изменили его ищет от например.TextView_Light
до TextView_Thin
.Как показано на следующем рисунке: появление «Anzugstrom [A]» в третьем ряду теперь выглядит как TextView_Thin
, а «9/48» в пятом ряду выглядит как TextView_Light
Что я знаю
- Этого не происходит, когда представление отображается впервые
- За ним нет системы,Это совершенно случайно.
- Это происходит в действиях и фрагментах
- Это происходит в каждом представлении, которое у меня есть, независимо от того, что TextView содержит «жестко запрограммированный» текст или текст, полученный из веб-службы
- Это не только в списках, но и в «нормальных» представлениях