Я пытаюсь создать textView программно и setHeight, setWidth и автоматический размер текста. textview работает хорошо, но автоматический размер текста не работает! пожалуйста, помогите мне.
AbsoluteLayout absoluteLayout = findViewById(R.id.absoluteLayout);
TextView textView = new TextView(MainActivity.this);
textView.setText("Hi Ali");
textView.setWidth(300);
textView.setHeight(100);
textView.setX(100);
textView.setY(40);
TextViewCompat.setAutoSizeTextTypeWithDefaults(textView, TextViewCompat.AUTO_SIZE_TEXT_TYPE_UNIFORM);
//border
GradientDrawable gd = new GradientDrawable();
gd.setStroke(2, 0xFF000000);
gd.setCornerRadius(5);
textView.setBackground(gd);
absoluteLayout.addView(textView);
и это мой xml-код
<?xml version = "1.0" encoding = "utf-8"?>
<FrameLayout 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 = "match_parent"
tools:context = ".MainActivity">
<AbsoluteLayout xmlns:android = "http://schemas.android.com/apk/res/android"
android:id = "@+id/absoluteLayout"
android:layout_width = "match_parent"
android:layout_height = "match_parent" />
</FrameLayout>
Используйте AppcompatTextView из библиотеки поддержки:
TextView textView = new AppCompatTextView(MainActivity.this);
или если это не работает:
AppCompatTextView textView = new AppCompatTextView(MainActivity.this);
Причина, по которой это работает, заключается в том, что когда вы определяете представления в XML и используете контекст AppCompat (например, AppCompatActivity), тогда расширяемый TextView является не классом TextView в среде Android, а подклассом TextView, называемым AppCompatTextView. Это справедливо и для некоторых других виджетов. Вы можете проверить это, чтобы увидеть несколько других виджетов, которые переопределяются.