Подтвердить что ты не робот

Плавающая кнопка действия, блокирующая другие компоненты

Новый материальный дизайн Google рекомендует использовать кнопки с плавающим действием, чтобы привлечь внимание к главному действию на этом экране. Это довольно много примеров в виде списка.

Теперь предположим, что в вашем представлении списка есть достаточно элементов для заполнения экрана, что делает невозможным прокрутку. Если в ваших элементах списка есть определенный компонент, с которым пользователь может взаимодействовать, например, переключатель или любимая звезда, возможно, что кнопка с плавающим действием блокирует этот компонент. Как мы должны обрабатывать этот случай?

EDIT. Это фактически всегда происходит с последним элементом в вашем списке

4b9b3361

Ответ 1

Добавить пустой вид с той же высотой, что и плавающая кнопка в нижнем колонтитуле списка. Поэтому, когда вы просматриваете свой список, последний элемент появится и плавающая кнопка не скроет последний элемент списка. Это простое и быстрое решение.

Ответ 2

Теперь у меня была эта проблема, и я решил ее так:

public void addBlankSpace(ListView listView)
{
    Space space = new Space(listView.getContext());
    space.setMinimumHeight(Core.dpToPx(50));
    listView.addFooterView(space);
}

И я думаю, что всегда есть лучший способ. как если бы вам это понадобилось. и только тогда, чтобы отобразить его. но на данный момент этот простой код работает очень хорошо.

И вот функция преобразования:

public static int dpToPx(int dp)
{
    return (int)(dp * Resources.getSystem().getDisplayMetrics().density);
}

Или мы можем просто добавить прописку:

listView.setPadding(0, 0, 0, Core.dpToPx(50));

Ответ 3

При загрузке списка вы можете создать флаг и найти, является ли элемент в списке последним видимым элементом на экране, чем скрыть плавающую кнопку.

используйте это, чтобы найти последний видимый элемент

int currentPosition = list.getLastVisiblePosition();

Вы получите последний номер элемента item.i.e, если последний элемент отображается в вашем списке последним, чем возвратит значение currentPosition = 7;

Как только вы получите количество элементов, которые соответствуют вашему экрану, теперь проверьте флаг

if(listAdapterItemsArray.get(position) == currentPosition) {
    //hide button
} else {
    //nothing 
}

Ответ 4

Вы можете установить положение кнопки действия google слева вверху, используя

     `android:layout_gravity="top|left"`

Таким образом, он выглядит хорошо и ничего не скрывает.

Ответ 5

Я просто делаю то, что, по моему мнению, делает приложение gmail Google, и добавляю дополнение к recyclerView (или списку).

<android.support.v7.widget.RecyclerView 
android:id="@+id/my_recyclerview" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:clipToPadding="false" 
android:paddingBottom="100dp" />