我在我的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方面)。
答案 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)。“