gpt4 book ai didi

android - 在滑动时从 fragment 导航到 Activity

转载 作者:行者123 更新时间:2023-11-30 01:34:39 24 4
gpt4 key购买 nike

我正在开发具有滑动功能的 android TabLayout。我使用 fragment 在 tablayout 内导航。

private void setupViewPager(ViewPager viewPager) {
ViewPagerAdapter adapter = new ViewPagerAdapter(
getSupportFragmentManager());

adapter.addFragment(new OneFragment(), "One");
adapter.addFragment(new TwoFragment(), "Two");
adapter.addFragment(new ThreeFragment(), "Three");
adapter.addFragment(new FourFragment(), "Four");
adapter.addFragment(new FivetFragment(), "Five");

adapter.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
if (isGoingToRightPage && isNavigated
&& dragging == ViewPager.SCROLL_STATE_DRAGGING) {
if (mLastPage == position)
navigateToLoginScreen();
} else {
//do nothing
}
}

@Override
public void onPageSelected(int position) {
if (position == APP_INTRO_TOTAL - 1) {
isGoingToRightPage = true;
} else {
isGoingToRightPage = false;
}
mLastPage = position;
}

@Override
public void onPageScrollStateChanged(int state) {
dragging = state;
}
});

private void navigateToLoginScreen() {
isNavigated = false;
Intent intent = new Intent(AppIntroActivity.this, LoginActivity.class);
startActivity(intent);
finish();
}

viewPager.setAdapter(adapter);
}

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 addFragment(Fragment fragment, String title) {
mFragmentList.add(fragment);
mFragmentTitleList.add(title);
}

@Override
public CharSequence getPageTitle(int position) {
return mFragmentTitleList.get(position);
}
}

当用户在 TabLayout 内滑动 Fragment 时,Fragment 会左右导航。这里 FivetFragment() 是 Tablayout 中的最后一个 fragment 。如果我从 FivetFragment() fragment 向左滑动,目前没有任何反应,因为 FivetFragment() 是该 TabLayout 中的最后一个 fragment 。当我从 FivetFragment() fragment 向左滑动时,我想导航到名为 Profile.Java 的下一个 Activity 。

是否可以在滑动 fragment 时从 fragment 导航到 Profile Activity。

请帮我在android中做这个。

最佳答案

只需覆盖您的 viewpager.addOnPageChangeListener。并添加以下代码

adapter.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
if (isGoingToRightPage && isNavigated
&& dragging == ViewPager.SCROLL_STATE_DRAGGING) {
if (mLastPage == position)
navigateToLoginScreen();
} else {
//do nothing
}
}

@Override
public void onPageSelected(int position) {
if (position == APP_INTRO_TOTAL - 1) {
isGoingToRightPage = true;
} else {
isGoingToRightPage = false;
}
mLastPage = position;
}

@Override
public void onPageScrollStateChanged(int state) {
dragging = state;
}
});

private void navigateToLoginScreen() {
isNavigated = false;
Intent intent = new Intent(AppIntroActivity.this, LoginActivity.class);
startActivity(intent);
finish();
}

全局定义这些

int mLastPage;
boolean isGoingToRightPage;
boolean isNavigated = true;
int dragging;

关于android - 在滑动时从 fragment 导航到 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35252140/

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