我有一个LinearLayout,我之前使用getLayoutParams控制了这个布局的高度,它工作得很漂亮。现在我希望布局可滚动,所以我将它放在ScrollView下。由于某种原因,getLayoutParams停止工作。试图解决这个问题似乎已经走到了尽头。请帮忙。
这是我的代码
if(subHistories.getLayoutParams().height==0)
(subHistories.getLayoutParams()).height=ViewGroup.LayoutParams.WRAP_CONTENT;
else
(subHistories.getLayoutParams()).height=0;
这里subHistories是我想控制高度的布局对象。我希望它在每个onClick事件上将它的高度从零切换到wrap_content
这是相关的xml代码:
...<ScrollView
android:id="@+id/left"
android:layout_width="200dp"
android:layout_height="fill_parent"
android:orientation="vertical"
android:layout_below="@id/head"
android:animateLayoutChanges="true">
<LinearLayout
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/historyBut"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="8dp"
android:background="#5261a5"
android:paddingBottom="5dp"
android:paddingLeft="5dp"
android:paddingRight="5dp"
android:paddingTop="5dp"
android:text="Historical Places"
android:textAllCaps="false"
android:textSize="20sp"
android:typeface="normal" />
<!-- historical places category -->
<LinearLayout
android:id="@+id/histories"
android:layout_marginLeft="10dp"
android:layout_width="match_parent"
android:layout_height="0dp"
android:orientation="vertical"
android:animateLayoutChanges="true" >...
答案 0 :(得分:0)
触摸布局参数后,请致电requestLayout()
以使更改生效。
要隐藏/显示布局,请考虑使用setVisibility()
代替GONE
和VISIBLE
。