Dynamische Größenänderung Android Studio TextView [Duplikat]
Ich versuche, die Größe eines Textfelds mithilfe von Java-Code dynamisch zu ändern. Ich möchte, dass die Breite keinen Umbruchinhalt verwendet, sondern eine statische Zahl in dp. Ich möchte, dass dies in Java-Code anstelle der XML-Datei erfolgt. Ich möchte, dass es so ist, weil ich es auf jedes Element in der Recycling-Ansicht anwenden möchte. Es muss mit mehreren Bildschirmgrößen arbeiten. Es funktioniert wie eine minimale Länge für eine Textfeldgröße. Wenn Sie wissen, wie man das macht, wäre das sehr wichtig.
Antworten
Dies wird als automatische Größenänderung bezeichnet und kann durch Hinzufügen von TextChangedListener erfolgen, einem Listener für Edit Tex. Dieser Listener überwacht die Änderungen von editText und hat drei verschiedene Status. Sie können auch eine Komponente (benutzerdefinierte Ansicht) erstellen und diese nach Belieben aus dem AppCompatTextView-Namen erweitern. In der Initialisierung können Sie den folgenden Code hinzufügen:
public class CustomTextView extends AppCompatTextView {
Context ctx;
public CustomTextView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
ctx = context;
init();
}
public CustomTextView(Context context, AttributeSet attrs) {
super(context, attrs);
ctx = context;
init();
}
public CustomTextView(Context context) {
super(context);
ctx = context;
init();
}
public void init() {
setOnTouchListener(null);
addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
if (getText().toString().length() > 10){
setTextSize(TypedValue.COMPLEX_UNIT_SP, textSizeSmall);
}
else if (getText().toString().length() > 5){
setTextSize(TypedValue.COMPLEX_UNIT_SP, textSizeMedium);
}
}
@Override
public void afterTextChanged(Editable s) {
}
});
}}
Schauen Sie sich auch diese an, es gibt einen Ton der Dokumentation dafür:
Automatisches TextView-Tutorial für Android
Automatische Größenanpassung von Textansichten
Ich denke das wird dir helfen ..
LinearLayout.LayoutParams textParam = new LinearLayout.LayoutParams
(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT, 1.0f);
textView.setLayoutParams(textParam);