【问题标题】:Other selected rows on ListView selected but not highlightedListView 上的其他选定行已选中但未突出显示
【发布时间】:2018-03-31 01:19:43
【问题描述】:

如果我在 ListView 中选择 ONE 行,它会突出显示,但每当我进入 MultipleSelection 模式(onLongClick、# selected rows、Contextual Action Bar)时,我选择的其他行不会保持突出显示但是 是根据 CAB 选择的,正如它所说的,“3 个选定的行”。

main.xml

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout   
...
>
 <HorizontalScrollView
 ...
 >
    <LinearLayout
    ...
    >
        <TableLayout
        ...    
        >
            <TableRow
            ...
            >
                <TextView
                ... 
                />
                <TextView
                ... 
                />
            </TableRow>
        </TableLayout>

        <ListView
            android:id="@+id/db_op_data_grid"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:listSelector="@drawable/rowselector"
            android:divider="@android:color/transparent" />
    </LinearLayout>
  </HorizontalScrollView>
</FrameLayout>

行选择器.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_focused="true" 
android:drawable="@drawable/select_button_selectable" /> 
<!-- focused -->

<item android:state_focused="true" android:state_pressed="true" 
 android:drawable="@drawable/select_button_selectable" /> 
<!-- focused and pressed-->

<item android:state_pressed="true" 
android:drawable="@drawable/select_button_selected" /> 
<!-- pressed -->

<item android:drawable="@drawable/select_button_selectable" /> 
<!-- default -->
</selector>

编辑:图像如下所示: Selected Rows but not Highlighted

【问题讨论】:

    标签: android xml android-layout listview highlight


    【解决方案1】:

    您需要在选择器中添加state_selected

    <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
        <item android:drawable="@drawable/select_button_selectable" android:state_focused="true" />
        <!-- focused -->
    
        <item android:drawable="@drawable/select_button_selectable" android:state_focused="true" android:state_pressed="true" />
        <!-- focused and pressed-->
    
        <item android:drawable="@drawable/select_button_selected" android:state_pressed="true" />
        <!-- pressed -->
    
        <item android:drawable="@drawable/select_button_selected" android:state_selected="true" />
        <!-- selected (ADD THIS) -->
    
        <item android:drawable="@drawable/select_button_selectable" />
        <!-- default -->
    </selector>
    

    【讨论】:

    • 不工作。这几天我一直在绞尽脑汁。
    • 如果它不适用于 xml 中的state_selected,则意味着视图的选定状态未设置为 true。您可以尝试在 Adapters onItemClickListener 中手动设置 setSelected(true)
    • 我认为 state_selected 有效,但应用程序不记得我按下了它。我正在使用 data_grid.setMultiChoiceModeListener(new AbsListView.MultiChoiceModeListener()
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-08
    • 1970-01-01
    • 2014-12-28
    • 1970-01-01
    • 2016-07-31
    • 2017-12-14
    相关资源
    最近更新 更多