我正在开发eclipse中的Android应用程序。
我有一个XML,它有两个彼此相邻的线性布局。左侧有几个按钮,可以在右侧显示内容。但是,我不仅喜欢这些按钮来显示特定内容,还隐藏(setVisibility.GONE)该布局中的所有其他内容。我已经尝试过removeAllViews,但这不适合我,因为它删除了它们。所以我的想法是隐藏(设置可见性消失)每一个东西,然后制作我希望可见的东西。我问这个的原因是,为所有12个按钮设置所有内容(实际上是24个)的可见性需要花费太多时间。
提前致谢
布局代码:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/alap"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<ScrollView
android:id="@+id/scrollView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/imageView3"
android:layout_alignParentLeft="true"
android:layout_below="@+id/imageView4" >
<LinearLayout
android:layout_width="197dp"
android:layout_height="match_parent"
android:orientation="vertical" >
<ImageView
android:id="@+id/imageView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/lewis" />
<Button
android:id="@+id/first"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/first" />
<Button
android:id="@+id/second"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/second" />
</LinearLayout>
</ScrollView>
<ImageView
android:id="@+id/imageView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:scaleType="center"
android:src="@drawable/cpr1" />
<ImageView
android:id="@+id/imageView4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:scaleType="center"
android:src="@drawable/epizodok" />
<LinearLayout
android:id="@+id/def"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/imageView3"
android:layout_alignParentRight="true"
android:layout_alignTop="@+id/scrollView2"
android:layout_toRightOf="@+id/scrollView2"
android:orientation="vertical"
android:visibility="visible" >
<ImageView
android:id="@+id/image1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/lewis"
android:visibility="gone" />
<ImageView
android:id="@+id/image2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_launcher"
android:visibility="gone" />
</LinearLayout>
</RelativeLayout>
答案 0 :(得分:6)
请试试这个......
<LinearLayout
android:id="+id/ll"
android:layout_width="197dp"
android:layout_height="match_parent"
android:orientation="vertical" >
<!-- All content which you hide/show put here -->
</LinearLayout>
现在在您的类文件中,您已阅读此内容。
LinearLayout ll = (LinearLayout) findViewById(R.id.ll);
根据您的要求,您可以隐藏/显示此布局及其所有内容。
像: 对于隐藏。
ll.setVisibility(View.GONE);
对于Show。
ll.setVisibility(View.VISIBLE);
当您隐藏/显示LinearLayout时,此布局的所有内容也会自动隐藏/显示。
答案 1 :(得分:6)
简单地说,只需在“def”线性布局中选择具有垂直布局的另一个线性布局。根据需要更改其可见性。
<LinearLayout
android:id="@+id/def"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/imageView3"
android:layout_alignParentRight="true"
android:layout_alignTop="@+id/scrollView2"
android:layout_toRightOf="@+id/scrollView2"
android:orientation="vertical"
android:visibility="visible" >
<LinearLayout
android:id="@+id/Subdef"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<ImageView
android:id="@+id/image1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/lewis"
android:visibility="gone" />
<ImageView
android:id="@+id/image2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_launcher"
android:visibility="gone" />
</LinearLayout>
</LinearLayout>
答案 2 :(得分:5)
无需隐藏视图,而只需使用ViewFlipper概念。 只需在你的xml文件中用你的两个线性布局声明视图鳍状肢
<Viewflipper android:id="@+id/myViewFlipper" android:layout_height="wrap_content" android:layout_width="match_parent">
<LinearLayout android:id="@+id/layout1" android:layout_height="wrap_content" android:layout_width="match_parent"></LinearLayout>
<LinearLayout android:id="@+id/layout2" android:layout_height="wrap_content" android:layout_width="match_parent"></LinearLayout>
</Viewflipper>
在你的java代码中获取viewflipper引用,如下所示
Viewflipper mFlipper = (Viewflipper)findViewById(R.id.myViewFlipper);
使用mFlipper.showNext(),使用mFlipper.showPrevious()方法隐藏和显示你的布局。