Android ScrollView下LinearLayout的getLayoutParams不工作
我有一个LinearLayout,我以前使用getLayoutParams控制这个布局的高度,它工作得很好。现在我希望布局是可滚动的,所以我把它放在滚动视图下。现在由于某种原因,getLayoutParams停止工作。我试图解决这个问题,似乎走到了死胡同。请帮忙 这是我的密码Android ScrollView下LinearLayout的getLayoutParams不工作,android,layoutparams,Android,Layoutparams,我有一个LinearLayout,我以前使用getLayoutParams控制这个布局的高度,它工作得很好。现在我希望布局是可滚动的,所以我把它放在滚动视图下。现在由于某种原因,getLayoutParams停止工作。我试图解决这个问题,似乎走到了死胡同。请帮忙 这是我的密码 if(subHistories.getLayoutParams().height==0) (subHistories.getLayoutParams()).heigh
if(subHistories.getLayoutParams().height==0)
(subHistories.getLayoutParams()).height=ViewGroup.LayoutParams.WRAP_CONTENT;
else
(subHistories.getLayoutParams()).height=0;
这里,subHistories是我想要控制其高度的布局对象。我希望它在每个onClick事件中将其高度从零切换到包装内容
下面是相关的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" >...
。。。
...
触摸布局参数后,调用requestLayout()
使更改生效
隐藏/显示布局,考虑使用<代码> StVistiBIILITY()/<代码> <代码> WOR/<代码>和<代码>可见。
<代码> >滚动视图> /代码> WrAPX内容是什么高度字段。那怎么办?换成“填充家长”还是不起作用。它停止了我遇到的一个错误。请检查ScrollView是否是xml的根视图。我将尝试一下。我不使用GONE,因为它仍然为布局保留空间。这是一个可折叠的菜单。隐形可以做到这一点,消失不占空间。它工作!非常感谢你。你能告诉我为什么它在ScrollView之前没有requestLayout,而在ScrollView之后就停止了吗?要么是因为有一个等待的布局传递,要么是因为你安排了一次重新发布。我明白了。再次谢谢你,你帮我省了很多麻烦。