【问题标题】:Android. Why does not work layout gravity when I define ListView's height programmatically?安卓。当我以编程方式定义 ListView 的高度时,为什么布局重力不起作用?
【发布时间】:2014-03-10 10:26:31
【问题描述】:

如果我在 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));

【问题讨论】:

    标签: android layout gravity


    【解决方案1】:

    这样试试

        LayoutParams params = listView.getLayoutParams();
        params.height = layoutHeight;
        listView.setLayoutParams(params);
    

    【讨论】:

      猜你喜欢
      • 2013-08-27
      • 2017-06-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-20
      相关资源
      最近更新 更多