带有BaseAdapter的ListView不显示如果我使用水平LinearLayout

时间:2014-06-21 12:20:19

标签: android listview

我尝试实现非常简单的BaseAdapter。 但是,这些项目不会显示在列表中,列表行似乎很薄,因此无法显示任何内容。

我的代码如下所示。

的活动:

public class MyActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_my);

        ListView listView = (ListView) findViewById(android.R.id.list);
        listView.setAdapter(new BaseAdapter() {
            String[] list = new String[] {"Spot", "Stripe"};
            @Override
            public int getCount() {
                return list.length;
            }

            @Override
            public Object getItem(int position) {
                return list[position];
            }

            @Override
            public long getItemId(int position) {
                return position;
            }

            @Override
            public View getView(int position, View convertView, ViewGroup parent) {
                if (convertView == null) {
                    convertView = getLayoutInflater().inflate(R.layout.item, null);
                }
                TextView text1 = (TextView) convertView.findViewById(R.id.text_left);
                TextView text2 = (TextView) convertView.findViewById(R.id.text_right);
                text1.setText("Name");
                text2.setText(getItem(position).toString());
                return convertView;
            }
        });
    }
}

活动布局(activity_my.xml):

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MyActivity">


    <ListView
        android:id="@android:id/list"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />


</LinearLayout>

ListView项目布局(item.xml):

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal">

    <TextView
        android:id="@+id/text_left"
        android:textAppearance="?android:attr/textAppearance"
        android:layout_width="wrap_content"
        android:layout_height="match_parent" />

    <View android:layout_width="20dp"
        android:layout_height="1dp"/>

    <TextView
        android:id="@+id/text_right"
        android:textAppearance="?android:attr/textAppearance"
        android:layout_width="wrap_content"
        android:layout_height="match_parent" />

</LinearLayout>

修改

如果我将LinearLayout的方向更改为&#34; vertical&#34;在item.xml中,该项目出现。 有人可以解释为什么我将方向设置为&#34;水平&#34;这排似乎很薄?

1 个答案:

答案 0 :(得分:0)

我发现了自己的错误。我在item.xml中为layout_height="1dp"设置View,在TextView之间放置一个空格。使行的高度非常薄。所以我无法在ListView中看到任何内容。如果我改为&#34; match_parent&#34;与其他两个TextView的layout_height一样,它解决了这个问题。