按下时,ListItem不会突出显示

时间:2014-04-26 14:50:04

标签: android android-layout listview

我有一个带有自定义布局的ListView。我尝试了几乎所有可以找到的东西,使项目在按下时给出反馈(例如按钮)。我知道我应该使用带有选择器的drawable-res作为根元素。我曾尝试将其用作listSelector和单个视图的背景,但它不起作用。我也尝试了drawSelectorOnTop但没有成功。 所以这是我的布局,也许我做错了什么,但我只能弄明白它是什么。

使用ListView的MainActivity-Layout:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/container"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.stegabach.magicalarm.MainActivity"
    tools:ignore="MergeRootFrame"
    android:divider="?android:attr/dividerHorizontal"
    android:showDividers="middle">

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

    <com.stegabach.magicalarm.DigitalClockWithoutSeconds 
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:gravity="center_horizontal"
        android:textSize="22sp"/>

    <TextView 
        android:id="@+id/next_alarm_view"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:layout_gravity="center_horizontal"
        android:gravity="center_horizontal"/>
</LinearLayout>

<Button 
    android:id="@+id/add_alarm"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="@string/button_add_alarm"
    android:drawableLeft="@drawable/ic_action_add_alarm"
    android:gravity="left|center_vertical"
    android:onClick="addAlarm"
    style="?android:attr/buttonBarButtonStyle"/>

<ListView
    android:id="@android:id/list"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:clickable="true"
    android:longClickable="true"
    android:choiceMode="multipleChoiceModal"
    android:drawSelectorOnTop="true"
    android:listSelector="#FFF"/>

<TextView 
    android:id="@android:id/empty"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/no_alarms"/>


</LinearLayout>

项目布局:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:longClickable="true"
    android:clickable="true"
    android:background="@drawable/item_selector">

<ToggleButton 
    android:id="@+id/list_alarm_active_toggle"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_centerVertical="true"/>

<TextView 
    android:id="@+id/list_alarm_time"
    android:layout_height="wrap_content"
    android:layout_width="wrap_content"
    android:layout_toRightOf="@id/list_alarm_active_toggle"
    android:layout_centerVertical="true"/>

<TextView
    android:id="@+id/list_alarm_days"
    android:layout_height="wrap_content"
    android:layout_width="wrap_content"
    android:layout_alignParentRight="true"
    android:layout_alignParentBottom="true"/>

最后是drawable的选择器:

<selector xmlns:android="http://schemas.android.com/apk/res/android" >
    <item android:state_focused="false" android:drawable="@drawable/item_bg_normal"/>
    <item android:state_pressed="true" android:drawable="@drawable/item_bg_pressed"/>
</selector>

也许我应该提一下,我使用相同的选择器作为一些ViewGroups的背景,它们的行为应该像按钮一样 - 这样可行。

提前致谢!

0 个答案:

没有答案