Siapa pun dapat membantu saya bagaimana untuk mengatur lebar TextViewuntuk wrap_contentmelalui kode dan bukan dari XML?
Saya secara dinamis membuat TextViewkode in, jadi adakah cara untuk mengatur lebarnya wrap_contentmelalui kode?
Siapa pun dapat membantu saya bagaimana untuk mengatur lebar TextViewuntuk wrap_contentmelalui kode dan bukan dari XML?
Saya secara dinamis membuat TextViewkode in, jadi adakah cara untuk mengatur lebarnya wrap_contentmelalui kode?
Jawaban:
TextView pf = new TextView(context);
pf.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
Untuk tata letak yang berbeda seperti ConstraintLayoutdan lainnya, mereka memiliki sendiri LayoutParams, seperti:
pf.setLayoutParams(new ConstraintLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
atau
parentView.addView(pf, new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
Ada cara lain untuk mencapai hasil yang sama. Jika Anda hanya perlu menetapkan satu parameter, misalnya 'tinggi':
TextView textView = (TextView)findViewById(R.id.text_view);
ViewGroup.LayoutParams params = textView.getLayoutParams();
params.height = ViewGroup.LayoutParams.WRAP_CONTENT;
textView.setLayoutParams(params);
LinearLayout, tampaknya tidak ll.invalidate()perlu. Mengapa?
Solusi untuk mengubah TextViewlebar untuk membungkus konten .
textView.getLayoutParams().width = ViewGroup.LayoutParams.WRAP_CONTENT;
textView.requestLayout();
// Call requestLayout() for redraw your TextView when your TextView is already drawn (laid out) (eg: you update TextView width when click a Button).
// If your TextView is drawing you may not need requestLayout() (eg: you change TextView width inside onCreate()). However if you call it, it still working well => for easy: always use requestLayout()
// Another useful example
// textView.getLayoutParams().width = 200; // For change `TextView` width to 200 pixel
Saya memposting teks edittext multi baris android berbasis Java.
EditText editText = findViewById(R.id.editText);/* edittext access */
ViewGroup.LayoutParams params = editText.getLayoutParams();
params.height = ViewGroup.LayoutParams.WRAP_CONTENT;
editText.setLayoutParams(params); /* Gives as much height for multi line*/
editText.setSingleLine(false); /* Makes it Multi line */
Sedikit pembaruan pada posting ini: jika Anda menggunakan ktx dalam proyek Android Anda, ada sedikit metode pembantu yang membuat pembaruan LayoutParams jauh lebih mudah.
Jika Anda ingin memperbarui, misalnya hanya lebarnya, Anda dapat melakukannya dengan baris berikut di Kotlin.
tv.updateLayoutParams { width = WRAP_CONTENT }
android.view.ViewGroup$LayoutParams cannot be cast to android.widget.LinearLayout$LayoutParams