gpt4 book ai didi

GridViewPager 中的 Android WearableListView

转载 作者:IT王子 更新时间:2023-10-28 23:35:02 24 4
gpt4 key购买 nike

我正在构建一个 Android Wear 应用程序,我想将其呈现为几个可以水平滑动的页面。

为此,我使用了 GridViewPager 和关联的 FragmentGridPagerAdapter,它们硬连线以使用单行。这对于在图 block 之间水平滑动效果很好,但是在我的一个 fragment 中,我想使用 Wea​​rableListView 来允许用户在多个操作之间进行选择。不幸的是,这不起作用,因为 GridViewPager 似乎阻止了任何滑动到 WearableListView。有谁知道是否可以使用所描述的组件来完成这项工作?

我也尝试过使用标准的 ViewPager,这使得 WearableListView 可以正常滚动,但是水平滑动变得不稳定,您经常需要滑动几次才能移动 View 寻呼机。

最佳答案

编辑:
在下面发布我的原始答案后一段时间,我找到了正确的方法。只需设置

    wearableListView.setGreedyTouchMode( true )

ListView 在 GridViewPager 中完美运行。

原始答案仍然是使用嵌套在水平滚动页面中的垂直滚动 GridViewPager 进行滚动的好 View 。

原始答案:
通过像这样扩展 GridViewPager 可以更简洁地实现与接受的答案大致相同的事情:

public class HorizontalListPager extends GridViewPager {

private final GestureDetector mGestureDetector;

public HorizontalListPager( Context context, AttributeSet attrs ) {
super( context, attrs );
mGestureDetector = new GestureDetector( context, new HScrollDetector() );
}

@Override
public boolean onInterceptTouchEvent( MotionEvent ev ) {
// If we have more horizontal than vertical scrolling, intercept the event,
// otherwise let the child handle it
return super.onInterceptTouchEvent( ev ) && mGestureDetector.onTouchEvent( ev );
}

class HScrollDetector extends GestureDetector.SimpleOnGestureListener {

@Override
public boolean onScroll( MotionEvent e1, MotionEvent e2, float distanceX, float distanceY ) {
// Returns true if scrolling horizontally
return ( Math.abs( distanceX ) > Math.abs( distanceY ) );
}
}
}

关于GridViewPager 中的 Android WearableListView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24804371/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com