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>