嵌套线性布局仅显示在Android中设置为可见后的第一个视图

时间:2010-06-10 21:20:35

标签: android layout visible

我正在开发一款Android应用,但我还是很新的。我想要一个按钮,当你按下该按钮时,会出现一些TextViews和Buttons。所以我有一个主线性布局,然后嵌套在里面的另一个线性布局包含我想隐藏的东西。我将嵌套的线性布局设置为android:visibility =“gone”。

我遇到的问题是它只显示隐藏线性布局中的第一个项目而不是所有这些项目。我试图让它出现的方式是

    vgAddView = (ViewGroup)findViewById(R.id.add_details);

    btnAche.setOnClickListener(new OnClickListener(){
        public void onClick(View v){
            vgAddView.setVisibility(0);
        }
    });

我的XML文件是这个

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<Button 
    android:text="@string/but_stomach_ache" 
    android:id="@+id/but_stomach_ache" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content">
</Button>
<Button 
    android:text="@string/but_food" 
    android:id="@+id/but_food" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content">
</Button>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:id="@+id/add_details"
    android:visibility="gone">
    <TextView
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:text="@string/when_happen">
        </TextView>
    <Button 
        android:text="@string/happen_now" 
        android:id="@+id/happen_now" 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content">
        </Button>
</LinearLayout>
</LinearLayout>

3 个答案:

答案 0 :(得分:4)

TextView中的LinearLayout设置为android:layout_width="fill_parent"android:layout_height="fill_parent",这意味着它将占用LinearLayout的整个空间,不会Button的空间。如果您使用SDK附带的hierarchyviewer工具,则可以在查看活动时看到。

您需要将TextView的高度设置为wrap_content,否则会为Button留出空间。

答案 1 :(得分:1)

将其可见性设置为如下所示的真实设置后:

  • vgAddView.setVisibility(View.VISIBLE); - 显示
  • vgAddView.setVisibility(View.GONE); - 隐藏它

答案 2 :(得分:0)

首先,TextView有一个layout_width =“fill_parent”。 这意味着,TextView不会为Button留出空间。 您可以尝试设置layout_weight属性或将layout_width设置为wrap_content