Плавающая кнопка действия, блокирующая другие компоненты
Новый материальный дизайн Google рекомендует использовать кнопки с плавающим действием, чтобы привлечь внимание к главному действию на этом экране. Это довольно много примеров в виде списка.
Теперь предположим, что в вашем представлении списка есть достаточно элементов для заполнения экрана, что делает невозможным прокрутку. Если в ваших элементах списка есть определенный компонент, с которым пользователь может взаимодействовать, например, переключатель или любимая звезда, возможно, что кнопка с плавающим действием блокирует этот компонент. Как мы должны обрабатывать этот случай?
EDIT. Это фактически всегда происходит с последним элементом в вашем списке
Ответы
Ответ 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" />