开发者

Customizing ListView via XML Problem

开发者 https://www.devze.com 2023-02-04 14:15 出处:网络
I have a simple ListActivity that uses a ListAdapter that I\'d like to customize the ListView for.Here is my onCreate, where I specify to use a View rather than using the default ListView generated by

I have a simple ListActivity that uses a ListAdapter that I'd like to customize the ListView for. Here is my onCreate, where I specify to use a View rather than using the default ListView generated by setListAdapter():

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    // set the listview, empty listview
    setContentView(R.layout.main);
    getListView().setEmptyView(findViewById(android.R.id.empty));

    // set the list properties
    getListView().setOnCreateContextMenuListener(this);

    .
    .
    .
    <code snipped>
    .
    .
    .

    setListAdapter(adapter);
}

You can see that I am setting the emptyView as well. Here is the XML file main.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">

    <ListView  
    android:id="@id/android:list"
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"
    android:fadingEdge="vertical"
        android:dividerHeight="5dp" />
    <TextView 
    android:id="@android:id/empty"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:gravity="center"
        android:singleLine="false"
        android:text="@string/message_empty_list" />
</LinearLayout>

My problem is that the ListView, while applying the dividerHeight correctly, is ignoring the :fadingEdge directive when it is in the XML; however, if I set the fadingEdge programatically, it works, i.e.:

getListView().setVerticalFadingEdgeEnabled(true);

Any ideas why the listview wou开发者_StackOverflowld be ignoring the fadingEdge specifically? Am I doing something incorrectly that could be leading to this behavior?

Thanks!


android:id="@id/android:list"

should be

android:id="@iandroid:id/list"

I'm not even sure why that compiles.

This is how you should be using custom xml for listactivities.

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
        <ListView
            android:id="@android:id/list"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent" />
        <TextView
            android:id="@android:id/empty"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:text="No data found"
            android:gravity="center"
            android:textAppearance="?android:attr/textAppearanceMedium" />
</FrameLayout>
0

精彩评论

暂无评论...
验证码 换一张
取 消