滚动时,自定义GridView选择器颜色溢出或移动或被拖动

时间:2017-02-03 07:23:50

标签: android gridview

我有一个带有自定义适配器的Gridview。一切都运行正常但是当我选择gridview的子项并向下滚动时,选择器颜色被拖下来,就像溢出一样。我尝试使用自定义选择器,但它没有帮助。

GridView的:

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/popup_layout"
    android:layout_gravity="center"
    android:weightSum="1"
    android:background="#ffffff">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:id="@+id/llayout1"
        android:background="@drawable/layout_design">

        <TextView
            android:text="Name"
            android:layout_width="match_parent" 
            android:layout_height="wrap_content" 
            android:id="@+id/textView6" 
            android:layout_weight="7" 
            android:textSize="16sp" 
            android:paddingLeft="10dp" />

        <EditText
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="3"
            android:background="@drawable/edit_style"
            android:id="@+id/prototypeName"
            />

    </LinearLayout>

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:id="@+id/llayout2"
    android:layout_below="@+id/llayout1"
    android:background="@drawable/layout_design">
    <TextView
        android:text="Orientation"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/textView7"
        android:layout_weight="7"
        android:textSize="16sp"
        android:paddingLeft="10dp" />
    <Spinner
        android:id="@+id/spinner"
        android:spinnerMode="dialog"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="3"/>
</LinearLayout>
<GridView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingLeft="10dp"
    android:paddingRight="10dp"
    android:horizontalSpacing="10dp"
    android:verticalSpacing="10dp"
    android:layout_below="@id/llayout2"
    android:numColumns="2"
    android:id="@+id/createGrid"
    android:listSelector="@color/colorPrimary"
    android:choiceMode="singleChoice"/>

截图:

  1. 选择了儿童 Selected child
  2. 2.选择后退出。 (左上角,颜色被拖动) enter image description here

    任何帮助表示赞赏!谢谢。

1 个答案:

答案 0 :(得分:0)

我认为您应该将所选项目的位置存储在适配器内的某个变量中。所以你可以改变背景颜色取决于这个变量。 你能附上适配器的代码吗?