У меня есть активность, состоящая из панели инструментов и пейджера. Его схема выглядит следующим образом:
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<android.support.v4.view.ViewPager
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingTop="112dp"
android:layout_gravity="bottom"
tools:context=".Rhino68PanelActivity" />
<LinearLayout
android:id="@+id/toolbarContainer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<include
android:id="@+id/app_bar"
layout="@layout/app_bar" />
<include
android:id="@+id/tap_strip"
layout="@layout/tab_strip" />
</LinearLayout>
I then load two fragments into the view pager. Each fragment contains its own SwipeRefreshLayout
. I will show one fragments layout:
<android.support.v4.widget.SwipeRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/swipe_refresh_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:weightSum="12"
tools:context=".Rhino68PanelActivity$DummySectionFragment">
...
<android.support.v7.widget.RecyclerView
android:id="@+id/recyclerView_panel_status"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:clipToPadding="false" />
</LinearLayout>
Now when I run the activity it seems to work. However I have noticed that is I slide horizontally (ie to go to the next tab). It triggers the swipeRefreshLayout
OnRefreshListener
mSwipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh() {
mSwipeRefreshLayout.setRefreshing(true);
DoUpdate();
}
});
Я также испытываю странное визуальное поведение, когда пытаюсь выполнить обновление. Знак загрузки (вращающийся круг) часто не отображается, а иногда отображается, но остается маленьким. Я не уверен, является ли это также причиной конфликта двух взглядов друг с другом.
Есть ли способ исправить эту проблему. Я не уверен, как. Может быть, ограничив SwipeRefreshLayout прослушиванием только вертикальных пролистываний?
Любые предложения будут очень признательны.
SwipeRefreshLayout
, это вызвало быOnRefresh()
- person Zapnologica   schedule 25.05.2015ViewGroup
примет на себя событие касания, и он определяется тем, было ли перетаскивание более вертикальным или горизонтальным. Как только событие касания принимаетсяViewGroup
, он продолжает обрабатывать событие без помех (используя методrequestDisallowInterceptTouchEvent()
). Мое приложение и макет довольно сложны, а также конфиденциальны, было бы полезно, если бы вы могли опубликовать минимальный пример проекта с этой проблемой (чтобы я мог его отладить). - person corsair992   schedule 25.05.2015