列表视图第一个元素不可点击

时间:2012-04-11 09:14:14

标签: android listview

我有一个片段中的元素列表。 我想禁用列表标题

http://bugs.haploid.fr/file_download.php?file_id=856&type=bug

这是我列表中单元格的代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    style="@style/stations_listView_layout">
    <com.infrabel.railtime.views.RobotoMediumTextView
        android:id="@+id/header_textview"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:paddingLeft="10dip"
        android:paddingBottom="5dip"
        android:layout_marginTop="29dip"
        android:text="A"
        style="@style/FragmentTitleSecondary">
    </com.infrabel.railtime.views.RobotoMediumTextView>

    <View
        android:id="@+id/header_bar"
        android:layout_width="match_parent"
        android:layout_height="2dip"
        android:background="@color/fragment_title_color">
    </View>

    <RelativeLayout
        style="@style/stations_listView_inner_layout"
        android:layout_width="fill_parent"
        android:layout_height="60dip">

        <com.infrabel.railtime.views.RobotoMediumTextView
            android:id="@+id/name"
            android:layout_width="fill_parent"
            android:layout_height="30dip"
            android:layout_gravity="center_vertical"
            android:textSize="@dimen/menu_list_item_primary_text_size"
            android:textColor="@color/grey_normal">
        </com.infrabel.railtime.views.RobotoMediumTextView>

        <com.infrabel.railtime.views.RobotoMediumTextView
            android:id="@+id/details"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:layout_marginTop="25dip"
            android:textSize="@dimen/fragment_title_text_size"
            android:textColor="@color/grey_light">
        </com.infrabel.railtime.views.RobotoMediumTextView>
    </RelativeLayout>
</LinearLayout>

我试图设置android:clickable = false或android:focusable =“false”并且它不起作用。

2 个答案:

答案 0 :(得分:1)

使某些ListView项目无法点击的一种方法是:

list.setOnItemClickListener(new OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> parent, View view,
            int position, long id) {
        if(position == 0) {
                    // FIRST ITEM - DO NOTHING
        } else {
                    // DO SOMETHING IF YOU WISH...
        }

    }
});

另一种方法是修改自定义适配器:

list.setAdapter(new ArrayAdapter<String>(this, R.layout.item,
        listItems) {

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        final TextView v = (TextView) super.getView(position,
                convertView, parent);
        if(position == 0) {
                v.setClickable(false);
                // havent tested this thou...
        }
    }

});

答案 1 :(得分:0)

得到它,我在我的cell.xml中     

因此每次添加单元格时都会绘制文本。 我们必须在主xml中声明这个,而不是从我们的适配器更改文本:

String firstLetter = station.getTitle().substring(0, 1);
if (position == _alphaIndexer.get(firstLetter)) {
    TextView header = (TextView) activity.findViewById(R.id.header_textview);
    header.setText(firstLetter);
}