嵌套线性布局中的Listview未在运行时显示

时间:2012-04-04 13:57:14

标签: android listview android-linearlayout

我的“图形设计”在textview下面有四行textview和一个listview,所有内容都嵌套在线性布局中。

设计背后的我的xml代码如下

<?xml version="1.0" encoding="UTF-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent" android:layout_height="fill_parent" 
    android:gravity="left" android:orientation="vertical">

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical" >

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal" >

            <TextView android:id="@+id/tvs_pname"
                android:layout_width="wrap_content" android:layout_height="wrap_content"
                android:text="Project Name:" android:textAppearance="?android:attr/textAppearanceMedium" />
            <TextView android:id="@+id/tv_pname"
                android:layout_width="wrap_content" android:layout_height="wrap_content"
                android:text="Large Text" android:textAppearance="?android:attr/textAppearanceLarge" />
        </LinearLayout>


        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal" >

            <TextView android:id="@+id/tvs_pamount" android:layout_width="wrap_content"
                android:layout_height="wrap_content" android:text="Budgeted Amout:"
                android:textAppearance="?android:attr/textAppearanceMedium" />
            <TextView android:id="@+id/tv_pamount" android:layout_width="wrap_content"
                android:layout_height="wrap_content" android:text="Large Text"
                android:textAppearance="?android:attr/textAppearanceLarge" />
        </LinearLayout>


        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal" >

            <TextView android:id="@+id/tvs_pstartdate"
                android:layout_width="wrap_content" android:layout_height="wrap_content"
                android:text="Start Date:" android:textAppearance="?android:attr/textAppearanceMedium" />
            <TextView android:id="@+id/tv_pstartdate"
                android:layout_width="wrap_content" android:layout_height="wrap_content"
                android:text="Large Text" android:textAppearance="?android:attr/textAppearanceLarge" />

        </LinearLayout>


        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal" >

            <TextView android:id="@+id/tvs_penddate"
                android:layout_width="wrap_content" android:layout_height="wrap_content"
                android:text="End Date:" android:textAppearance="?android:attr/textAppearanceMedium" />
            <TextView android:id="@+id/tv_penddate" android:layout_width="wrap_content"
                android:layout_height="wrap_content" android:text="Large Text"
                android:textAppearance="?android:attr/textAppearanceLarge" />
        </LinearLayout>

    </LinearLayout>
        <LinearLayout android:layout_height="fill_parent"
            android:layout_width="fill_parent" android:orientation="vertical">

            <ListView android:id="@+id/lst_projlist"
                android:layout_width="fill_parent" android:layout_height="fill_parent">
            </ListView>

        </LinearLayout>
</LinearLayout> 

问题在于,当我在模拟器上运行我的应用时,文本视图就像设计一样,但列表视图不会出现在它下面。为什么会这样呢?

实验上我从我的代码中删除了listview,而在那里删除了一个按钮。当我运行我的应用程序时,textview和按钮都出现在模拟器中,就像设计一样。

那么我的代码有什么问题?我在列表视图中遗漏了一些属性吗? 我是个新手,所以我知道我可能会犯一个非常基本的错误

3 个答案:

答案 0 :(得分:2)

您是否在代码中通过某种ListView填充了Adapter数据?如果列表中没有任何项目,它将是&#34;隐藏&#34;因为它没有任何东西可以展示。

如果是,您可以使用Hierarchy Viewer工具与模拟器分析您的布局呈现方式,并查看ListView的位置。

您也可以尝试使用layoutopt来确保为整个屏幕使用最佳布局。我看到很多嵌套的LinearLayouts可能会被淘汰,比如TableLayout

答案 1 :(得分:0)

您是否在列表视图中添加了一个元素? 不知道这是否是解决方案 - 不是经常使用模拟器,而是尝试它。

答案 2 :(得分:0)

你的代码是对的。可能你没有填写代码中的列表。 例如,尝试将此行添加到onCreate()方法中:

  

ListView lst_projlist =(ListView)findViewById(R.id.lst_projlist);

    for (int i=0; i<10;i++)
        elements.add("element "+i);

    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, elements);
    lst_projlist.setAdapter(adapter);