- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的应用程序使用连接的蓝牙设备向其发送事件,因此当我从 BLE 设备接收到事件时,我必须执行某些操作。此外,我还创建了一个实现 OnPageChangeListener 的内部类,并且我还使用一个用于滑动选项卡的类。我的目标是当我收到事件时通过选项卡“前进”。例如,如果我停留在选项卡 1 中,我想转到选项卡 2,依此类推。
我如何使用我的类(class)来做到这一点?我的疑问是:我必须调用什么方法才能更改选项卡?
这是实现OnPageChangeListener的内部类
private class InternalViewPagerListener implements ViewPager.OnPageChangeListener {
private int mScrollState;
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
int tabStripChildCount = mTabStrip.getChildCount();
if ((tabStripChildCount == 0) || (position < 0) || (position >= tabStripChildCount)) {
return;
}
mTabStrip.onViewPagerPageChanged(position, positionOffset);
View selectedTitle = mTabStrip.getChildAt(position);
int extraOffset = (selectedTitle != null)
? (int) (positionOffset * selectedTitle.getWidth())
: 0;
scrollToTab(position, extraOffset);
if (mViewPagerPageChangeListener != null) {
mViewPagerPageChangeListener.onPageScrolled(position, positionOffset,
positionOffsetPixels);
}
}
@Override
public void onPageScrollStateChanged(int state) {
mScrollState = state;
if (mViewPagerPageChangeListener != null) {
mViewPagerPageChangeListener.onPageScrollStateChanged(state);
}
}
@Override
public void onPageSelected(int position) {
if (mScrollState == ViewPager.SCROLL_STATE_IDLE) {
mTabStrip.onViewPagerPageChanged(position, 0f);
scrollToTab(position, 0);
}
if (mViewPagerPageChangeListener != null) {
mViewPagerPageChangeListener.onPageSelected(position);
}
}
}
private class TabClickListener implements View.OnClickListener {
@Override
public void onClick(View v) {
for (int i = 0; i < mTabStrip.getChildCount(); i++) {
if (v == mTabStrip.getChildAt(i)) {
mViewPager.setCurrentItem(i);
return;
}
}
}
}
我也有这个方法:
public void scrollToTab(int tabIndex, int positionOffset) {
final int tabStripChildCount = mTabStrip.getChildCount();
if (tabStripChildCount == 0 || tabIndex < 0 || tabIndex >= tabStripChildCount) {
return;
}
View selectedChild = mTabStrip.getChildAt(tabIndex);
if (selectedChild != null) {
int targetScrollX = selectedChild.getLeft() + positionOffset;
if (tabIndex > 0 || positionOffset > 0) {
// If we're not at the first child and are mid-scroll, make sure we obey the offset
targetScrollX -= mTitleOffset;
}
scrollTo(targetScrollX, 0);
}
}
最佳答案
您可以使用viewPager.setCurrentItem()
来更改选项卡。
例如,假设您想通过单击按钮移至下一个选项卡:
private void onClick(){
viewPager.setCurrentItem(viewPager.getCurrentItem() + 1);
}
现在,viewPager.getCurrentItem()
将获取当前选项卡的数量,+1
会将当前项目设置为下一个项目。
关于java - 实现 OnPageChangeListener 的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41855627/
我有 3 个选项卡,我使用 fragment 实现了这些选项卡。假设我每次滑动到 Tab2 时,我都希望执行相同的代码,即我希望每次都重新加载 Tab2 内容。这背后的原因是,在 Tab1 中,用户有
是否可以在 ViewPager 的 OnPageChangeListener 的方法 onPageScrolled 中知道滚动的方向? 最佳答案 我用过这样的东西: mPager.setOnPageC
我的应用程序使用连接的蓝牙设备向其发送事件,因此当我从 BLE 设备接收到事件时,我必须执行某些操作。此外,我还创建了一个实现 OnPageChangeListener 的内部类,并且我还使用一个用于
我正在使用下面的代码。但当您旋转屏幕或重新运行应用程序时它会起作用。 pager.addOnPageChangeListener(new ViewPager.SimpleOnPageChangeLis
根据 this接受的答案,我能够得到我的 tabLyout 如下: 我现在需要的是能够根据 fragment 位置更改按钮文本,例如,如果位置为零,则不应出现 Back,如果位置为最后,Next 应该
我正在使用自定义 ViewPager,当我滑动到新页面时,ViewPager.OnPageChangeListener 不起作用。可能是什么原因? mPager = (WrapContentHeigh
关于 Android 中的淡入淡出的问题有很多,但它们都包括动画。我的问题是关于使用 ViewPager 的 OnPageChangeListener 进行淡入淡出。 我有一个 ViewPager,它
我试图禁止我的 ViewPager 在选项卡之间滚动。我有以下情况: public class MyClass extends ViewPager implements ViewPag
我有一项 Activity 正在加载 6 个 fragment 。三个 fragment 中的六个具有搜索 View ,其余三个 fragment 未实现搜索 View 。 我制作了两个menu.xm
我正在尝试同步两个 ViewPager,因为在我之前显然有很多人,我已经做到了这一点: private ViewPager mNavPager; private ViewPager mMainPage
我在这里看到了一些类似的帖子,但没有合适的答案。 我使用事件 onpageselected in a viewpager 来执行一个函数。此功能依赖于网络,因此可能需要一些时间。但是幻灯片动画看起来很
我用过viewpager,当页面改变时,标题会根据位置改变。 这是我在 onCreate() 中的代码 setContentView(R.layout.activity_single_news
我有一个带有标签的 ViewPager + ActionBar。当我“滑动”到另一个选项卡时,我想隐藏软键盘,但我不知道如何。 我已将我的 Activity 传递给 FragmentPageAdapt
我是 kotlin 的新手,如何在 ViewPager 中添加 OnPageChangeListener。 viewPager?.addOnPageChangeListener // Now how
我在 MainActivity 中将 circlePageIndicator 与我的 Viewpager 一起使用。 circlePagerIndicator.setViewPager(mPager)
我收到一条错误消息:构造函数 Intent(new ViewPager.OnPageChangeListener(){}, Class) 未定义 上线:Intent Intent = new Inte
我是一名优秀的程序员,十分优秀!