有没有办法在onCreate期间动态指定android:layout_height?

KD.*_*KD. 0 android textview android-layout

我想设置

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"
               />
Run Code Online (Sandbox Code Playgroud)

小智 6

只需编辑视图的布局参数.

TextView v = (TextView) findViewById(R.id.sometext);
LayoutParams lp = v.getLayoutParams();
lp.height = 50;
v.setLayoutParams(lp);
Run Code Online (Sandbox Code Playgroud)

在这个例子中,视图将是50px高.

请注意,由于存在许多设备规格,通常不建议对布局使用像素尺寸.而是使用dp (密度无关像素)代替.您可以通过以下方式从dp值计算像素尺寸(此处为50dp至px):

float dp = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 50,
                                     getResources().getDisplayMetrics()); 
Run Code Online (Sandbox Code Playgroud)