Задайте положение прогрессивной панели swiperefreshlayout

Есть ли простой способ изменить положение контрольной панели swiperefreshlayouts. Я хотел бы добавить некоторый yTranslation в progressbar tomset positionb ниже прозрачной панели действий (Swiperefreahlayout находится за панель действия). Однако оказывается, что swiperefreshlayout не использует progressbar (или любой другой вид View), а скорее рисует непосредственно на холсте swipebacklayout. так что единственный способ скопировать код из swiperefreshlayout, не так ли? Или кто-то другой знает об обходном пути?

2 ответа

Если я правильно понял, вы используете:

в вашей теме, не так ли? (или <item name="windowActionBarOverlay">true</item> если вы поддерживаете Android 2. + тоже)

Если вы используете область ниже (по оси z) ActionBar для других представлений и хотите, чтобы индикатор Progress SwipeRefreshLayout находился сразу после ActionBar (по оси Y), они просто добавляют PaddingTop в ListView в SwipeRefreshLayout, Например:

<android.support.v4.widget.swiperefreshlayout android:id="@+id/swipe_refresh_layout" android:layout_width="match_parent" android:layout_height="wrap_content">

 <listview android:id="@+id/list_view" android:layout_width="match_parent" android:layout_height="wrap_content" android:paddingtop="?android:attr/actionBarSize">
 </listview>
</android.support.v4.widget.swiperefreshlayout>

или ?attr/actionBarSize если вы также поддерживаете Android 2. +.


Быстрая прокрутка в recyclerveiew была добавлена в api 26. https://developer.android.com/topic/libraries/support-library/revisions#26-0-0.

Если вы хотите использовать его pre api 26, используйте

https://github.com/L4Digital/FastScroll

Эта библиотека имеет встроенный fastscroll и имеет прослушиватель прокрутки, который может отключить макет refreshview при прокрутке

Разработчик решает проблему здесь:

https://github.com/L4Digital/FastScroll/issues/14

licensed under cc by-sa 3.0 with attribution.