Установка ширины в wrap_content для TextView через код - PullRequest
72 голосов
/ 31 января 2011

Может кто-нибудь помочь мне, как установить ширину TextView в wrap_content с помощью кода, а не из XML?

Я динамически создаю код TextView, так что в любом случае, какустановить ширину wrap_content через код?

Ответы [ 5 ]

106 голосов
/ 31 января 2011
TextView pf = new TextView(context);
pf.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));

или

parentView.addView(pf, new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
72 голосов
/ 28 января 2014

Есть еще один способ добиться того же результата. Если вам нужно установить только один параметр, например, «высота»:

TextView textView = (TextView)findViewById(R.id.text_view);
ViewGroup.LayoutParams params = textView.getLayoutParams();
params.height = ViewGroup.LayoutParams.WRAP_CONTENT;
textView.setLayoutParams(params);
41 голосов
/ 25 апреля 2016

Решение для изменения TextView ширина до упаковка содержимого .

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
1 голос
/ 12 июля 2018

Я думаю, этот код ответит на ваш вопрос

RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) 
holder.desc1.getLayoutParams();
params.height = RelativeLayout.LayoutParams.WRAP_CONTENT;
holder.desc1.setLayoutParams(params);
0 голосов
/ 28 января 2019

Я размещаю многострочный текстовый редактор для 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 */
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...