ListView在Activity中不可见

时间:2014-03-13 13:47:00

标签: android

我有一个ListView如下所示,当程序首次执行时,它是可见的 后来自动隐身。

当用户点击Button时,此布局会显示,VisibilityGONE

之前
    <RelativeLayout
     android:id="@+id/comments_block"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:layout_below="@+id/header"
     android:visibility="gone" >
     <TextView
     android:id="@+id/comments_subHeadding"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:layout_alignParentLeft="true"
     android:layout_alignParentRight="true"
     android:layout_alignParentTop="true"
     android:text="Type your comment"
     android:textAppearance="?android:attr/textAppearanceMedium"
     android:textColor="@color/red" />
     <EditText
     android:id="@+id/user_commetns"
     android:layout_width="match_parent"
     android:layout_height="50dip"
     android:layout_below="@+id/comments_subHeadding"
     android:layout_marginTop="5dip"
     android:background="@color/white"
     android:imeOptions="actionSend"
     android:inputType="textLongMessage" />
     </RelativeLayout>

此布局包含ListView我在这里遇到问题。

     <LinearLayout
     android:id="@+id/listview_layout"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:layout_below="@+id/comments_block"
     android:background="@color/ios_blue"
     android:orientation="vertical">
     <ListView
     android:id="@+id/comments_list1"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:layout_marginTop="1dip"
     android:background="@android:color/transparent"
     android:cacheColorHint="@android:color/transparent" >
     </ListView>
     </LinearLayout>

活动代码

@Override 
public void onClick(View v) 
{ 
    if (v == add_comment_button) 
    { 
        if(show)
        { 
             comments_block.setVisibility(View.VISIBLE); 
             show = false; 
             return; 
        } 
        else
        { 
            comments_block.setVisibility(View.GONE); 
            show = true; 
        } 
    } 
    else if (v == back_comments_button) 
    { finish(); } 
}

2 个答案:

答案 0 :(得分:0)

我为你的问题找到了解决方案..... 你只是只显示和隐藏comments_block .... 你试试这个...我希望它肯定能帮助你...所有的bset

@Override 
public void onClick(View v) 
{ 
if (v == add_comment_button) 
{ 
    if(show)
    { 
         comments_block.setVisibility(View.VISIBLE); 
         listview_layout.setVisibility(View.GONE); 
         show = false; 
         return; 
    } 
    else
    { 
        comments_block.setVisibility(View.GONE);             
        listview_layout.setVisibility(View.VISIBLE); 
        show = true; 
    } 
} 
else if (v == back_comments_button) 
{ finish(); } 
}

答案 1 :(得分:0)

在您的代码中,您正在做  android:layout_height="wrap_content",如果列表视图中没有项目,则其高度将为0.

因此,如果您使用match_parent代替wrap_content

,请注意
android:layout_height="match_content" 

android:layout_weight="1"

然后您的列表视图将可见。

我希望它能奏效。