如果我用XML定义ListView的高度,布局重力是有效的,但我想以编程方式计算高度,但在这种情况下,布局会相互滑动。
XML:
<EditText android:id="@+id/inputSearch"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="10dp"
android:hint="Search..."
android:background="@drawable/bar"
android:inputType="text"
android:layout_gravity="top" />
<ListView
android:id="@+id/contactlist"
android:layout_width="wrap_content"
android:layout_height="400dp"
android:layout_gravity="bottom" />
代码:
TypedValue tv = new TypedValue();
if (getTheme().resolveAttribute(android.R.attr.actionBarSize, tv, true))
{
actionBarHeight = TypedValue.complexToDimensionPixelSize(tv.data,getResources().getDisplayMetrics());
}
Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
int layoutHeight = size.y - 59 - actionBarHeight;
listView.setLayoutParams(new FrameLayout.LayoutParams(FrameLayout.LayoutParams.WRAP_CONTENT,layoutHeight));
答案 0 :(得分:1)
试试这个
LayoutParams params = listView.getLayoutParams();
params.height = layoutHeight;
listView.setLayoutParams(params);