【发布时间】:2015-01-05 17:15:53
【问题描述】:
我正在编写一个需要分配剩余屏幕空间来查看的应用程序。
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/txtView_1"
android:layout_width="match_parent"
android:layout_height="100dp" />
<TextView
android:id="@+id/txtView_2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="Test Text" />
</LinearLayout>
并设置运行时我使用以下:
private void process() {
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
int txtView1Height = txtView_1.getHeight();
LayoutParams layoutParams = (LayoutParams) txtView_2.getLayoutParams();
layoutParams = new LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT,
(metrics.heightPixels - txtView1Height));
txtView_2.setLayoutParams(layoutParams);
}
但是这里它的剩余高度并不完全相同..因为 textview 刺痛没有放在中心(这就是我简单检查的方式)......以像素为单位设置高度可能是错误的。
这里有什么建议吗?
【问题讨论】:
-
无需在代码中这样做。只需将
match_parent分配给 txtView_2 的高度。它将填满剩余空间。
标签: android height layoutparams