我正在使用一个屏幕,我想在点击按钮时在布局之间切换。我希望两个布局都占据屏幕的整个高度,当按下第一个布局上的按钮时,我希望这个布局消失,另一个布局取下它的位置,然后在下一个布局上相同。
<LinearLayout
android:id="@+id/layoutFirst"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
..... views
</LinearLayout>
<LinearLayout
android:id="@+id/layoutSecond"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
..... views
</LinearLayout>
在每个布局上我都有一个按钮。我希望此按钮切换,以便其他布局占据整个屏幕,但没有任何反应。第一个屏幕的点击事件中的代码如下
LinearLayout layoutFirst = (LinearLayout) this.findViewById(R.id.layoutFirst);
layoutFirst.setVisibility(View.GONE);
LinearLayout layoutSecond = (LinearLayout) this.findViewById(R.id.layoutSecond);
layoutSecond.setVisibility(View.VISIBLE);
如果问题与fill_parent有关,我也尝试将高度设置为wrap_content。最初我可以在屏幕上看到两种布局,当我按下按钮时,布局仍然无效。
任何人都可以告诉我,如果我做错了什么或有没有办法解决这个问题。任何帮助将不胜感激
答案 0 :(得分:1)
将两个LinearLayouts放在FrameLayout中:
<FrameLayout
android:id="@+id/framelayout"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<LinearLayout
android:id="@+id/layoutFirst"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:visibility="gone">
</LinearLayout>
<LinearLayout
android:id="@+id/layoutSecond"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
</LinearLayout>
</FrameLayout>
为LinearLayouts提供不同的ID!
答案 1 :(得分:1)
您的父布局是否为“RelativeLayout”? =&GT;这里没有必要。
尝试在这个非常相似的线程how to hide linearlayout from java code?
中提出的解决方案更新
/*global or add final keyword if not global in order to use inside listener */
LinearLayout layoutFirst;
LinearLayout layoutSecond;
/*end global*/
/*in onCreate(Bundle) method*/
layoutFirst = (LinearLayout) this.findViewById(R.id.layoutFirst);
layoutSecond = (LinearLayout) this.findViewById(R.id.layoutSecond);
/*and then in your listener, alternatively*/
layoutFirst.setVisibility(View.GONE);
layoutSecond.setVisibility(View.VISIBLE);