我正在为智能手表开发一个应用程序,并且GridViewPager中包含一个ScrollView(垂直),它本身也包含在FrameLayout中。
垂直滚动条只能在Sony SmartWatch 3上使用,而不能在Moto 360(第一代)上使用。
这是代码:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/shape">
<android.support.wearable.view.GridViewPager
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:keepScreenOn="true" />
<android.support.wearable.view.DotsPageIndicator
android:id="@+id/page_indicator"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal|bottom">
</android.support.wearable.view.DotsPageIndicator>
</FrameLayout>
在GridViewPager内部:
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true">
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="10dp"
android:background="@color/wl_blue">
<TextView
android:id="@+id/very_long_text"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@color/wl_blue"
android:paddingTop="4dp"
android:paddingBottom="4dp"
android:paddingLeft="10dp"
android:paddingRight="8dp"
android:fontFamily="sans-serif-medium"
android:textSize="14sp"
android:textColor="@color/white"/>
</RelativeLayout>
</ScrollView>
您知道为什么它不能在Moto 360上运行吗?
谢谢你的帮助
最佳答案
我遇到了与您自己相同的问题。看来Moto 360上的GridViewPager处理触摸的方式与其他设备不同。我在其上测试过的其他设备(包括其他圆形手表)将触摸从GridViewPager传递到滚动视图,但是使用Moto 360时,GridViewPager会消耗触摸本身。
关于android - Grid View Pager中的Scrollview在Android Wear上不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34198129/