Listview listselector不工作

时间:2011-12-21 11:58:20

标签: android

我在我的xml文件中创建了一些视图,xml文件包含list-view。 在该列表视图中,我有列表选择器属性,我定义了drawable 选择器的图像。

我的xml文件如下:

<?xml version="1.0" encoding="utf-8"?>
        <FrameLayout android:id="@+id/frameLayout1" 
            android:layout_width="fill_parent" 
            android:layout_height="fill_parent"
            xmlns:android="http://schemas.android.com/apk/res/android">
            <com.naaima.vovinet.activity.VideoNativePlayer 
                    android:layout_marginLeft="50dip" 
                    android:layout_width="800dip" 
                    android:layout_marginRight="30dip" 
                    android:id="@+id/video_view" 
                    android:layout_height="600dip" 
                    android:layout_marginTop="50dip">
                </com.naaima.vovinet.activity.VideoNativePlayer>
            <ImageView android:src="@drawable/icon" 
                android:layout_height="wrap_content" 
                android:layout_width="wrap_content" 
                android:id="@+id/imageView1"/>
            <ImageView android:src="@drawable/icon" 
                android:layout_height="wrap_content" 
                android:layout_width="wrap_content"
                android:layout_gravity="center_horizontal" 
                android:id="@+id/imageView2"/>  

            <LinearLayout android:id="@+id/linearlayout"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent">

            <TextView 
                    android:id="@+id/textView_channelno" 
                    android:layout_width="130dip"
                    android:hint="_ _ _"
                    android:layout_marginLeft="1050dip" 
                    android:layout_marginTop="20dip"
                    android:background="@drawable/sample"
                    android:gravity="center"
                    android:textSize="25dip"
                    android:visibility="gone"
                    android:layout_height="80dip"/>


                </LinearLayout>



            <FrameLayout android:id="@+id/frameLayout2" 
                android:layout_width="1100dip" 
                android:layout_height="wrap_content"
                android:background="@drawable/bg1"
                android:layout_gravity="bottom"
                android:layout_marginLeft="100dip"
                android:layout_marginBottom="15dip">



                <RelativeLayout android:id="@+id/relativeLayout1" 
                    android:layout_width="fill_parent" 
                    android:layout_height="fill_parent">
                        <ProgressBar style="?android:attr/progressBarStyleHorizontal" 
                            android:layout_width="730dip" 
                            android:layout_height="wrap_content" 
                            android:id="@+id/progressBar" 
                            android:layout_marginTop="30dip"
                            android:background="@drawable/progress_bar_bg"
                            android:layout_marginLeft="180dip"/>

                        <TextView android:id="@+id/textView_date" 
                            android:layout_height="wrap_content" 
                            android:layout_width="wrap_content"
                            android:layout_toRightOf="@+id/progressBar"
                            android:layout_marginTop="30dip"
                            android:layout_marginLeft="50dip"/>

                        <TextView android:id="@+id/textView_time" 
                            android:layout_height="wrap_content" 
                            android:layout_width="wrap_content" 
                            android:layout_below="@+id/textView_date"
                            android:layout_marginTop="3dip"
                            android:layout_toRightOf="@+id/list"
                            android:layout_marginLeft="57dip" 
                            />  

                     <TextView 
                            android:id="@+id/textView_location"
                            android:text="Hyderabad" 
                            android:layout_width="wrap_content" 
                            android:layout_height="wrap_content" 
                            android:layout_below="@+id/textView_time" 
                            android:layout_marginTop="10dip"
                            android:layout_marginRight="10dip"
                            android:layout_toRightOf="@+id/imageView_temp"
                            />

                           <TextView 
                            android:id="@+id/textView_temp"
                            android:text="35 Degrees" 
                            android:layout_width="wrap_content" 
                            android:layout_height="wrap_content" 
                            android:layout_below="@+id/textView_location"
                            android:layout_marginRight="10dip"
                            android:layout_marginTop="5dip"
                            android:layout_toRightOf="@+id/imageView_temp"
                            />

                       <ImageView android:id="@+id/imageView_temp"
                            android:src="@drawable/temp"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_below="@+id/textView_time"
                            android:layout_toRightOf="@+id/list"
                            android:layout_marginLeft="20dip"/>

                     <ImageView android:id="@+id/imageView_logo"
                            android:src="@drawable/zee"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_marginTop="30dip"
                            android:layout_marginLeft="50dip"/>


                      <ImageView android:id="@+id/imageView_left"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:src="@drawable/arrow_left_gray"
                            android:layout_marginTop="110dip"
                            android:layout_marginLeft="23dip"/>

                        <TextView android:id="@+id/txt_channelName"
                            android:text="M-Tunes"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_marginTop="110dip"
                            android:layout_marginLeft="50dip"/>

                        <ImageView android:id="@+id/imageView_right"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:src="@drawable/arrow_right_gray"
                            android:layout_marginTop="110dip"
                            android:layout_marginLeft="150dip"/>

                        <ListView android:id="@+id/list"
                            android:layout_width="690dip"
                            android:layout_height="125dip"
                            android:layout_below="@+id/progressBar"
                            android:layout_marginLeft="220dip"
                                            android:listSelector="@drawable/highlight_bar"/>  
                                <ImageView android:id="@+id/imageView_up"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:src="@drawable/arrow_up_gray"
                            android:layout_below="@+id/progressBar"
                            android:layout_marginTop="5dip"
                            android:layout_marginLeft="180dip"/>


                                </RelativeLayout>

        </FrameLayout>

    </FrameLayout>`

Row.xml

 <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout
      xmlns:android="http://schemas.android.com/apk/res/android"
      android:orientation="vertical"
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      >
        <TextView android:text="TextView" 
            android:id="@+id/textView_list" 
            android:layout_width="wrap_content" 
            android:layout_height="wrap_content"
            />
    </LinearLayout>

java代码如下所示

    ListView lv = (ListView) findViewById(R.id.list);
    String[] values = new String[] { "Now:Harry Potter and Deathly Hellows", "Lord of the Rings:Two Towers", "Lord of the Rings:Return of King",
                    "rd of the Rings:Honneypot solo Dance"};

            ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
                    R.layout.row,R.id.textView_list, values);
            lv.setAdapter(adapter);
            lv.setSelector(R.drawable.highlight_bar);
            lv.setDivider(null);

如果我只执行listview,行xml代码列表选择器工作正常。 如果我按下上下箭头,它工作正常。但我正在整合 listview与上面的代码它不工作,如果我按下箭头 在键盘中没有用(专注于不去listview方面)。

2 个答案:

答案 0 :(得分:1)

只是加入Jason的上述回应。我最近碰到了这个问题,Jason的回答很明显,除了我需要在listView上调用 requestFocusFromTouch()以使其显然能够响应触摸。 requestFocus()在我的场景中有帮助但是requestFocusFromTouch()是。希望这可以帮助那些人。

答案 1 :(得分:0)

在xml中设置android:focusable =“true”后,您是否尝试在代码中的listView上调用“requestFocus()”?从查看docs

“调用此方法以尝试将焦点放在特定视图或其后代之一。如果视图不可聚焦(isFocusable()返回false),或者它是可聚焦的,则视图实际上不会获得焦点。当设备处于触摸模式时,无法在触摸模式下聚焦(isFocusableInTouchMode())。另请参阅focusSearch(int),这就是您所说的有焦点,并且您希望您的父母寻找下一个。相当于使用参数FOCUS_DOWN和null调用requestFocus(int,Rect)。“