当前位置: 首页 > 知识库问答 >
问题:

选择器在Android网格视图中不起作用

钱雅逸
2023-03-14

我为Android网格视图设置了一个选择器,如下所示

mygridview.setSelector(R.drawable.my_background);

当我单击gridview中的一个孩子时,它工作正常(背景正在设置),并且在gridview中失去焦点后背景没有消失。

但是当我手动选择一个子视图,如mygridview.setSelection(位置),它设置背景,但当它从gridview失去焦点时,它会消失。

顺便说一下,我的选择器是这样的:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape xmlns:android="http://schemas.android.com/apk/res/android"
            android:shape="oval">
            <solid android:color="#08c246"/>
            <padding android:left="-5dp" android:bottom="-5dp" android:right="-5dp" android:top="-5dp"/>

        </shape>
    </item>
</selector>

我尝试过通过设置Android:state_selectedAndroid:state_checked但没有用。

共有2个答案

夹谷浩博
2023-03-14

终于我得到了答案

>

  • 不要像这样在gridview中设置选择器mygridview.setSelector(R.drawable.my_background)
  • 像这样更改绘图:

    <item android:state_activated="true">
        <shape xmlns:android="http://schemas.android.com/apk/res/android"
            android:shape="oval">
            <solid android:color="#08c246"/>
            <padding android:left="-5dp" android:bottom="-5dp" android:right="-5dp" android:top="-5dp"/>
    
        </shape>
    </item>
    

    使上面可绘制为cellview的背景(用于制作gridview的每个单元格的视图)

    要从网格视图中以编程方式选择单元格,只需执行mygridview。setItemChecked(pos,true)

    这对我有用!

  • 苏宾鸿
    2023-03-14

    我猜: mGridView.set选择模式(GridView.CHOICE_MODE_SINGLE)

    item.xml
    <FrameLayout
    android:background = "@drawable/my_background"
    >
    </FrameLayout>
    my_background.xml
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
     <item android:state_selected = "true">
            <shape xmlns:android="http://schemas.android.com/apk/res/android"
                android:shape="oval">
                <solid android:color="#08c246"/>
                <padding android:left="-5dp" android:bottom="-5dp" android:right="-5dp" android:top="-5dp"/>
    
            </shape>
        </item>
        <item>
            <shape xmlns:android="http://schemas.android.com/apk/res/android"
                android:shape="oval">
                <solid android:color="#ffffff"/>
                <padding android:left="-5dp" android:bottom="-5dp" android:right="-5dp" android:top="-5dp"/>
    
            </shape>
        </item>
    </selector>
    
     类似资料:
    • 我正在使用布局的网格视图,它在列表中的网格视图项之后不工作,它在logcat错误中显示“throwIndexOutOfBoundsException”。没有onclick函数,如果我使用toast它的工作,如果我为下一个活动提供一个onlicck函数,它将不工作 Gridviewadapter.java 主活动.java gridview的Onclick函数在这里不起作用,我也发布了我的xml布局

    • 问题内容: 我尝试使用创建在一个列中具有两个值的视图,并且该视图已成功创建,但是当我尝试从中选择所有视图时,出现此错误: 我尝试研究此操作和串联运算符,但令我沮丧的是没有找到任何帮助。这是我用来创建视图和选择的代码。 问题答案: Oracle中的串联运算符是双管道。所述用于添加数字加在一起,因此,该错误。 该视图已成功创建,因为Oracle在创建数据时不会评估数据;仅确保它可以编译。

    • Aspx代码: C#代码: 下拉列表selectedindexchanged事件不会触发。我尝试在运行时更改下拉列表值时,在数据库值中获取更新。

    • 和 ListView 一样,GridView 也是一个 ViewGroup,它用来将各种不同的控件整合到一起,按照一个二维可以滚动的网格视图展示出来。同时也遵循 MVC 模式,依靠 Adapter 自动帮我们完成 UI 和数据的绑定。 1. GridView 的特性 GridView 在 Android App 中运用非常广泛,比如我们手机的系统相册将我们的照片及照片名称按照网格的样式排列起来,并

    • HTML格式 我没有这个的id或名称。因此我写 但click()没有发生。 已尝试driver . find element(by . CSS selector("。按钮[值=搜索]”)。单击(); 尝试值='Search '(单引号)。 这些选择器正在

    • 我在记事本上建立了保存对话框,这是一个问题,因为我有在另一个类中保存文件的方法,当我在公共静态无效主(String[]args)中使用时,它什么也不做