Есть ли способ указать android: layout_height динамически во время onCreate? - PullRequest
0 голосов
/ 09 декабря 2011

Я хотел бы установить

android: layout_height = " wrap_content "

для некоторых пикселей ( int ) во время запуска моего приложения.Это textView, и причина этого в том, что я хочу, чтобы высота textView была динамической на основе некоторых входных данных моего конца, которые будут вычисляться при вызове метода onCreate.

Возможно ли это?если да, то любой пример был бы хорош.

Забыл добавить, что мой textView xml выглядит так

 <TextView
                android:id="@+id/sometext"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:fadingEdge="vertical"
                android:background="@drawable/dropshadow"
                android:scrollbars="vertical"
                android:text="Getting data on your slow n/w..."
                android:textColor="#ffffff"
               />

1 Ответ

6 голосов
/ 09 декабря 2011

Просто отредактируйте параметры макета вида.

TextView v = (TextView) findViewById(R.id.sometext);
LayoutParams lp = v.getLayoutParams();
lp.height = 50;
v.setLayoutParams(lp);

В этом примере представление будет иметь высоту 50px.

Обратите внимание, что обычно не рекомендуется использовать размеры в пикселях для макетов из-за множества характеристик устройства.Вместо этого используйте dp (плотность пикселей) .Вы можете рассчитать размеры в пикселях по значениям dp следующим образом (от 50dp до px здесь) :

float dp = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 50,
                                     getResources().getDisplayMetrics()); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...