public abstract class

FocusDelegate<K>

extends java.lang.Object

 java.lang.Object

↳androidx.recyclerview.selection.FocusDelegate<K>

Gradle dependencies

compile group: 'androidx.recyclerview', name: 'recyclerview-selection', version: '1.2.0-alpha01'

  • groupId: androidx.recyclerview
  • artifactId: recyclerview-selection
  • version: 1.2.0-alpha01

Artifact androidx.recyclerview:recyclerview-selection:1.2.0-alpha01 it located at Google repository (https://maven.google.com/)

Androidx artifact mapping:

androidx.recyclerview:recyclerview-selection com.android.support:recyclerview-selection

Overview

Override methods in this class to provide application specific behaviors related to focusing item.

Summary

Constructors
publicFocusDelegate()

Methods
public abstract voidclearFocus()

If the environment supports focus and something is focused, unfocus it.

public abstract voidfocusItem(ItemDetailsLookup.ItemDetails<java.lang.Object> item)

If environment supports focus, focus item.

public abstract intgetFocusedPosition()

Returns the position of the currently focused item, or RecyclerView.NO_POSITION if nothing is focused.

public abstract booleanhasFocusedItem()

from java.lang.Objectclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Constructors

public FocusDelegate()

Methods

public abstract void focusItem(ItemDetailsLookup.ItemDetails<java.lang.Object> item)

If environment supports focus, focus item.

public abstract boolean hasFocusedItem()

Returns:

true if there is a focused item.

public abstract int getFocusedPosition()

Returns the position of the currently focused item, or RecyclerView.NO_POSITION if nothing is focused.

You must implement this feature if you intend your app to work well with mouse and keyboard. Selection ranges are inferred from focused item when there is no explicit last-selected item.

You can manage and advance focus using keyboard arrows, reflecting this state visibly in the view item. Use can then press shift, then click another item with their mouse to select all items between the focused item and the clicked item.

Returns:

the position of the currently focused item, or RecyclerView#NO_POSITION if none.

public abstract void clearFocus()

If the environment supports focus and something is focused, unfocus it.

Source

/*
 * Copyright 2017 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package androidx.recyclerview.selection;

import androidx.annotation.NonNull;
import androidx.recyclerview.selection.ItemDetailsLookup.ItemDetails;
import androidx.recyclerview.widget.RecyclerView;

/**
 * Override methods in this class to provide application specific behaviors
 * related to focusing item.
 *
 * @param <K> Selection key type. @see {@link StorageStrategy} for supported types.
 */
public abstract class FocusDelegate<K> {

    static <K> FocusDelegate<K> stub() {
        return new FocusDelegate<K>() {
            @Override
            public void focusItem(@NonNull ItemDetails<K> item) {
            }

            @Override
            public boolean hasFocusedItem() {
                return false;
            }

            @Override
            public int getFocusedPosition() {
                return RecyclerView.NO_POSITION;
            }

            @Override
            public void clearFocus() {
            }
        };
    }

    /**
     * If environment supports focus, focus {@code item}.
     */
    public abstract void focusItem(@NonNull ItemDetails<K> item);

    /**
     * @return true if there is a focused item.
     */
    public abstract boolean hasFocusedItem();

    /**
     * Returns the position of the currently focused item, or
     * {@link RecyclerView#NO_POSITION} if nothing is focused.
     *
     * <p>You must implement this feature if you intend your app
     * to work well with mouse and keyboard. Selection
     * ranges are inferred from focused item when there is
     * no explicit last-selected item.
     *
     * <p>You can manage and advance focus using keyboard arrows,
     * reflecting this state visibly in the view item.
     * Use can then press shift, then click another item with
     * their mouse to select all items between the focused
     * item and the clicked item.
     *
     * @return the position of the currently focused item,
     *     or {@code RecyclerView#NO_POSITION} if none.
     */
    public abstract int getFocusedPosition();

    /**
     * If the environment supports focus and something is focused, unfocus it.
     */
    public abstract void clearFocus();
}