Android-TV: How to return the focus to the item before leaving when the focus of two listviews is switched

 Just use this for layout, just add an onFocusChanged method

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);
        }
    }

}

use

        <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" />

Guess you like

Origin blog.csdn.net/title71/article/details/130647301