Подтвердить что ты не робот

Android view layout_width - как программно изменить?

Это мое мнение, и я хочу изменить layout_width на "10dip". Как мне сделать это программно? Обратите внимание, что это не LinearLayout, это View.

<View 
    android:id="@+id/nutrition_bar_filled" 
    android:background="@drawable/green_rectangle" 
    android:layout_height="30dp"
    android:layout_width="50dp"/>       

Я знаю о LayoutParams. Как я могу использовать его, чтобы установить ширину 10dip?

4b9b3361

Ответ 1

Я полагаю, что ваш вопрос заключается в том, чтобы динамически изменять только ширину вида, тогда как вышеуказанные методы полностью изменят свойства макета на новые, поэтому я предлагаю сначала вызвать getLayoutParams() из представления, затем установить ширину для layoutParams и, наконец, установить layoutParams для представления поэтому следуйте приведенным ниже шагам, чтобы сделать то же самое.

View view = findViewById(R.id.nutrition_bar_filled);
LayoutParams layoutParams = view.getLayoutParams();
layoutParams.width = newWidth;
view.setLayoutParams(layoutParams);

Ответ 2

Вы также можете установить высоту и ширину:

viewinstance.setLayoutParams(new LayoutParams(width, height));

Ответ 3

попробуйте использовать

View view_instance = (View)findViewById(R.id.nutrition_bar_filled);
view_instance.setWidth(10);

используйте Layoutparams, чтобы установить ширину и высоту, как показано ниже.

LayoutParams lp = new LayoutParams(10,LayoutParams.wrap_content);
View_instance.setLayoutParams(lp);

Ответ 4

Или просто:

view.getLayoutParams().width = 400;
view.requestLayout();