布局用这个就可以了,就是添加了一个onFocusChanged方法
public class myListView extends ListView {
public myListView(Context context) {
super(context);
}
public myListView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public myListView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
public myListView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
super(context, attrs, defStyleAttr, defStyleRes);
}
@Override
protected void onFocusChanged(boolean gainFocus, int direction, Rect previouslyFocusedRect) {
int lastSelectItem = getSelectedItemPosition();
super.onFocusChanged(gainFocus, direction, previouslyFocusedRect);
if (gainFocus) {
setSelection(lastSelectItem);
}
}
}
使用
<cn.titansys.waylon.ui.listview.myListView
android:background="#60000000"
android:id="@+id/lv_list"
android:layout_width="200dp"
android:layout_marginBottom="200px"
android:layout_marginLeft="100px"
android:layout_height="800px"
android:listSelector="@drawable/item_focus_sub_left" />