gpt4 book ai didi

android - ViewPager 如何仅在超出 PagerTitleStrip 的情况下滑动 View

转载 作者:太空狗 更新时间:2023-10-29 15:13:45 25 4
gpt4 key购买 nike

背景故事:

我已经弄乱了一段时间,但找不到任何像样的文档。我不得不支持 api 级别 8,因此查看寻呼机似乎是一个很好的解决方案。我已经将它与 pagerTitleStrip 一起使用了。但是,我只希望用户在 pagerTitleStrip 上滑动时能够在 View 之间滑动。我有点工作。

问题:

当我在按钮、编辑文本字段等的顶部(touch_move)滑动时,viewpager 只会将一小块其他 View 带入窗口。除非在 View 之间滑动的 touchmove 事件位于 pagerTitleStrip 之上,否则我不希望发生任何事情。

失败的尝试:

我已经设置了 viewPager 的 onTouchListener 和我用来确定用户是否在 pagerTitleStrip 上滑动的任何 onTouch 事件操作(touchmove、touchup、touchdown)。

//in onCreate()
...
setContentView(R.layout.pager_adapter);
dashboardPagerAdapter = new DashboardPagerAdapter(
getSupportFragmentManager());
dashboardViewPager = (ViewPager) findViewById(R.id.dashboard_pager);
dashboardViewPager.setAdapter(dashboardPagerAdapter);
dashboardViewPager.setId(R.layout.activity_dashboard);
dashboardViewPager.setCurrentItem(DashboardPagerAdapter.DASHBOARD);
dashboardViewPager.setOnTouchListener(this);
...

// in onTouch
View pagerTitleArea = findViewById(R.id.pager_title_strip);
int pagerTitleBottomYLocation = pagerTitleArea.getBottom();
initialYPositionOfEvent = 100; // set the initial position out of range.
int action = event.getAction();

if (action == MotionEvent.ACTION_DOWN){
initialYPositionOfEvent = event.getY();
originWasTitleBar = (initialYPositionOfEvent > pagerTitleBottomYLocation) ? false : true ;
hasTouchDownEventOccured = true;
return true;
} else if (action == MotionEvent.ACTION_MOVE){
if(originWasTitleBar && hasTouchDownEventOccured){
return false;
} else {
return true;
}
} else {
if(originWasTitleBar && hasTouchDownEventOccured){
originWasTitleBar = false;
hasTouchDownEventOccured = false;
return false;
} else {
originWasTitleBar = false;
hasTouchDownEventOccured = false;
return true;
}
}

最佳答案

也许可以使用带有按钮的 ViewFlipper 来切换内容,或者使用操作栏选项卡或类似的东西。

关于android - ViewPager 如何仅在超出 PagerTitleStrip 的情况下滑动 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14488022/

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