В ListView возможно ли затухание элементов только с одного края?

#android #xml #listview #styling #fading

#Android #xml #listview #оформление #затухание

Вопрос:

Я использую простой listview и хочу затухать с одного края, а не с двух или четырех, как я сейчас использую:

 <ListView
    android:id="@ id/main_feed"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:requiresFadingEdge="vertical"
    android:fadingEdgeLength="50dp" >
</ListView>
  

Я хочу затухать только с одного края (нижнего края), но выполнение ‘vertical’ или ‘horizontal’ в requiresFadingEdge приводит к затуханию top / bottom или left / right соответственно.

Есть предложения?

Комментарии:

1. вы когда-нибудь разбирались с этим?

2. Ошибка: ( Я думаю, вы можете достичь этого, расширив scrollview.

Ответ №1:

Я знаю, что это старый вопрос, но я нашел способ сделать это. Просто создайте свой собственный класс, расширяющий ListView, и переопределите метод getTopFadingStrength() следующим образом:

 @Override
protected float getTopFadingEdgeStrength() {
    return 0;
}
  

Это устранит затухание сверху, но сохранит затухание снизу, тогда в вашем XML просто используйте вашу реализацию ListView.

Комментарии:

1. Да! Отличный ответ. Спасибо, Ивар!