Je vois que Android publié dans Ceci adapte la disposition du Comment puis-je utiliser ceci avec un Oreo code> Un nouvel attribut pour
TextView code>:
TextView code> en fonction de la chaîne de texte qu'il affiche. p>
textswitcher code>? p> p> p>
3 Réponses :
altitudeSwitcher = (TextSwitcher) findViewById(R.id.altitude); altitudeSwitcher.setFactory(new ViewFactory() { @Override public View makeView() { TextView t = new TextView(getApplicationContext()); t.setGravity(Gravity.TOP | Gravity.CENTER_HORIZONTAL); t.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 50); return t; } });
Je ne comprends pas comment ce TextView va s'adapter au texte à l'intérieur?
@Isaac à Android, Textswitcher est une vue spécialisée qui contient uniquement des enfants de type TextView. - La méthode SetFactory est utilisée pour créer une nouvelle vue pour TextSwitcher. En utilisant cette méthode, nous créons une nouvelle TextView et remplacons l'ancienne vue avec cela.
Il est probablement plus facile de gonfler une vue textuelle que de le créer en code, mais je reçois l'idée.
@Isaac Oui, vous pouvez consulter la nouvelle réponse pour cela
<?xml version="1.0" encoding="utf-8"?> <TextView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/textView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/hello" /> private ViewFactory viewFactory = new ViewFactory() { public View makeView() { LayoutInflater inflater = LayoutInflater.from(TextSwitcherTest.this); TextView textView = (TextView) inflater.inflate(R.layout.textView, null); return textView; } };
Je ne sais pas sur ceux ci-dessus, mais voici une solution avec un codage minimal. Vous pouvez modifier la hauteur principale de la mise en page pour voir l'autostimation en action, ou vous pouvez appuyer sur la section supérieure. Une caractéristique froide est que le style du deuxième champ de texte effectue une fois taraudé (c'est-à-dire que le texte est blanc).
<?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="350dp" tools:context=".MainActivity"> <TextSwitcher android:id="@+id/a" android:layout_width="0dp" android:layout_height="0dp" android:background="@color/purple_200" app:layout_constraintBottom_toTopOf="@id/b" app:layout_constraintStart_toStartOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toTopOf="parent" app:layout_constraintVertical_chainStyle="spread" android:onClick="switchText" android:layout_marginTop="5dp" android:layout_marginBottom="5dp"> <TextView android:id="@+id/a1" android:layout_width="match_parent" android:layout_height="match_parent" android:text="999 / 999" android:gravity="center" android:letterSpacing="-0.05" app:autoSizeMaxTextSize="936sp" app:autoSizeMinTextSize="28sp" app:autoSizeTextType="uniform" android:lines="1" android:includeFontPadding="false" /> <TextView android:id="@+id/a2" android:layout_width="match_parent" android:layout_height="match_parent" android:text="1000000 / 10000000" android:textColor="@color/white" android:gravity="center" android:letterSpacing="-0.05" app:autoSizeMaxTextSize="136sp" app:autoSizeMinTextSize="28sp" app:autoSizeTextType="uniform" android:lines="1" android:includeFontPadding="false" /> </TextSwitcher> <TextSwitcher android:id="@+id/b" android:layout_width="0dp" android:layout_height="0dp" android:background="@color/teal_200" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/a" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintVertical_chainStyle="spread" android:layout_marginTop="5dp" android:layout_marginBottom="5dp"> <TextView android:id="@+id/b1" android:layout_width="match_parent" android:layout_height="match_parent" android:text="999 / 999" android:gravity="center" android:letterSpacing="-0.05" app:autoSizeMaxTextSize="136sp" app:autoSizeMinTextSize="28sp" app:autoSizeTextType="uniform" android:lines="1" android:includeFontPadding="false" /> </TextSwitcher> </androidx.constraintlayout.widget.ConstraintLayout>