我有一个NavigationDrawerActivity
,其布局如下:
<android.support.v4.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/drawer_drawerlayout"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<FrameLayout
android:id="@+id/drawer_framelayout"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<ListView
android:id="@+id/drawer_listview"
android:layout_width="240dp"
android:layout_height="match_parent"
android:layout_gravity="start"
android:choiceMode="singleChoice"
android:divider="@color/transparent"
android:dividerHeight="0dp"
android:background="@color/navigationDrawerBackgroundColor" />
</android.support.v4.widget.DrawerLayout>
FrameLayout
被Fragment
替换为NavigationDrawer
ListView
中当前所选项目。
显示效果很好,NavigationDrawer
效果很好,但当Fragment
包含带有指标的ViewPager
时,例如:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v4.view.ViewPager
android:id="@+id/viewpager"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1.0" />
<me.shkschneider.skeleton.ui.viewpager.ViewPagerCircleIndicator
android:id="@+id/viewpagercircleindicator"
android:layout_width="match_parent"
android:layout_height="@dimen/spaceSmallish" />
</LinearLayout>
当我尝试向后(向左)滑动时(大多数情况下)我得到了奇怪的行为:View
里面的ViewPager
幻灯片就像距离的一半,然后重置到它的位置,很难刷到上一个Fragment
。
我注意到只有当我的手指的起点位于屏幕左侧(NavigationDrawer
所在的位置)时才会发生这种情况,但我看不到任何NavigationDrawer
运动。< / p>
这发生在运行Android 5.0.1的Nexus 5和运行Android 4.4.4的Moto X上。
Listener
或其他什么来阻止这种行为/如何避免这种行为?答案 0 :(得分:-1)
我使用Android设计库实现了这一点,现在这个问题已经消失了。
https://developer.android.com/training/implementing-navigation/nav-drawer.html