Кнопка удаления строки в Android ListView - проблема с фокусом - PullRequest
1 голос
/ 12 июня 2010

У меня есть активность с ListView и кнопками ниже:

<?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:orientation="vertical">

    <ListView android:id="@+id/lvLamps" android:layout_width="fill_parent"
        android:layout_height="fill_parent" android:listSelector="@null"
        android:choiceMode="none" android:scrollbarStyle="insideInset"
        android:layout_weight="1.0" />

    <RelativeLayout android:layout_width="fill_parent"
        android:layout_height="wrap_content" android:orientation="horizontal"
        android:layout_weight="0.0">

        <Button android:id="@+id/btnAdd" android:background="@null"
            android:drawableLeft="@drawable/btn_upgrade"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:drawableRight="@drawable/lbl_upgrade"
            android:textSize="0pt" android:text=""
            android:layout_alignParentLeft="true" android:padding="20px" />


        <Button android:id="@+id/btnNext" android:background="@null"
            android:drawableRight="@drawable/next_btn"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:drawableLeft="@drawable/lbl_next"
            android:textSize="0pt" android:text=""
            android:layout_alignParentRight="true" android:padding="20px"
            android:visibility="gone" />

        <ImageButton android:id="@+id/btnListExit"
            android:background="@null" android:src="@drawable/btn_x"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true" android:padding="20px" />

    </RelativeLayout>
</LinearLayout>

Строка ListView содержит кнопку удаления:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content" android:layout_height="wrap_content"
    android:orientation="horizontal" android:focusable="true">
    <RelativeLayout android:layout_width="wrap_content"
        android:layout_height="wrap_content" 
        android:orientation="horizontal" android:focusable="true">
        <ImageButton android:id="@+id/btnRowDelete" 
            android:src="@drawable/btn_x"
            android:background="@null" android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true" android:padding="4px"  
            android:focusable="true" android:focusableInTouchMode="true"/>
            <TextView android:id="@+id/txtLampRowFrom" android:text="123"
                android:layout_width="wrap_content" 
                    android:layout_height="wrap_content" android:textSize="6pt"
                    android:layout_toRightOf="@id/btnRowDelete"
                    android:focusable="false"
                    android:textColor="@color/textColor"/>
            <TextView android:id="@+id/txtLampRowTo" android:text="123"
                android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                android:textSize="6pt"
                    android:layout_toRightOf="@id/btnRowDelete"
                    android:layout_alignParentBottom="true"
                    android:focusable="false"
                    android:textColor="@color/textColor"/>
        <ImageView android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/arrow_upgrade_to"
            android:layout_alignParentRight="true"
            android:layout_centerVertical="true" android:focusable="false"/>
    </RelativeLayout>
</LinearLayout>

В Адаптере установлена ​​кнопка onClickListener, также есть манекены, чтобы сделать список недоступным для выбора:

    // disabling list items select
    public boolean areAllItemsEnabled() {
        return false;
    }

    public boolean isEnabled(int position) {
        return false;
    }

То, что я хочу, это:

  • всегда показывать кнопки внизу экрана после списка (независимо от того, как долго это будет, должна быть прокрутка, если она слишком длинная)
  • ListView не должен выбираться, я не хочу выделять строки
  • кнопка удаления строки должна выбираться (фокусироваться) с помощью прикосновения и трекбола

И все работает, кроме того, что я не могу сфокусировать кнопку удаления строки с трекболом (хотя она работает с сенсорным экраном). Вы можете мне помочь?

Спасибо!

1 Ответ

0 голосов
/ 22 июня 2010

Используйте

listView.setItemsCanFocus(true);
...