- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
根据 this接受的答案,我能够得到我的 tabLyout
如下:
我现在需要的是能够根据 fragment 位置更改按钮文本,例如,如果位置为零,则不应出现 Back
,如果位置为最后,Next
应该替换为 Done
我使用了 ViewPager.OnPageChangeListener
但对我不起作用,下面是完整代码:
public class Slider extends AppCompatActivity {
private TabLayout tabLayout;
private ViewPager viewPager;
private Button leftBtn, rightBtn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.start_up);
leftBtn = (Button) findViewById(R.id.left_btn);
rightBtn= (Button) findViewById(R.id.right_btn);
viewPager = (ViewPager) findViewById(R.id.viewpager);
setupViewPager(viewPager);
tabLayout = (TabLayout) findViewById(R.id.tabLayout);
tabLayout.setupWithViewPager(viewPager);
}
// This is not working, even the `Toast` not appearing
private ViewPager.OnPageChangeListener listener = new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
Toast.makeText(Slider.this, "Current position: "+position, Toast.LENGTH_SHORT).show();
if (position == 0) {
leftBtn.setText("");
}
if (position == 3) {
rightBtn.setText("DONE");
}
}
@Override
public void onPageScrollStateChanged(int state) {
}
};
private void setupViewPager(ViewPager viewPager) {
ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager());
adapter.addFrag(new Tab1(),"");
adapter.addFrag(new Tab2(),"");
adapter.addFrag(new Tab3(),"");
adapter.addFrag(new Tab4(),"");
viewPager.setAdapter(adapter);
}
static class ViewPagerAdapter extends FragmentPagerAdapter {
private final List<Fragment> mFragmentList = new ArrayList<>();
private final List<String> mFragmentTitleList = new ArrayList<>();
public ViewPagerAdapter(FragmentManager manager) {
super(manager);
}
@Override
public Fragment getItem(int position) {
return mFragmentList.get(position);
}
@Override
public int getCount() {
return mFragmentList.size();
}
public void addFrag(Fragment fragment, String title) {
mFragmentList.add(fragment);
mFragmentTitleList.add(title);
}
@Override
public CharSequence getPageTitle(int position) {
return mFragmentTitleList.get(position);
}
}
public void next_fragment(View view) {
viewPager.setCurrentItem(viewPager.getCurrentItem()+1);
}
public void previous_fragment(View view) {
viewPager.setCurrentItem(viewPager.getCurrentItem()-1);
}
public void start_app(View view) {
startActivity(new Intent(Slider.this, TrustedNumber.class));
finish();
}
}
最佳答案
是因为你没有给viewpager加监听
viewPager.addOnPageChangeListener(listener);
关于android - 如何使用 ViewPager.OnPageChangeListener,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43675161/
我有 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
我是一名优秀的程序员,十分优秀!