gpt4 book ai didi

java - 滑动时的 Android ViewPager Bug

转载 作者:行者123 更新时间:2023-11-30 02:35:55 25 4
gpt4 key购买 nike

我有一个关于 viewPager 的奇怪问题。当我从一个 fragment 滑动到下一个 fragment 然后再向后滑动时,布局是正确的,但是当按下一个元素(例如 Listview 项目)时,之前的 java 代码仍然没有随 View 更新。我不知道我是否可以更好地解释这一点,因为当我玩滑动直到 fragment 按预期工作时它会起作用。这是我的代码:

主要.Java:

public class Main extends FragmentActivity {

SectionsPagerAdapter mAdapter;

ViewPager mViewPager;

// for alert transitions
AlertDialog dialog;

// share button
private ShareActionProvider mShareActionProvider;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

// set up button
getActionBar().setDisplayHomeAsUpEnabled(true);

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

// Create the adapter that will return a fragment for each of the three
// primary sections of the app.
mAdapter = new SectionsPagerAdapter(
getSupportFragmentManager());

// Set up the ViewPager with the sections adapter.
mViewPager = (ViewPager) findViewById(R.id.pager);
mViewPager.setAdapter(mAdapter);
mViewPager.setPageTransformer(true, new DepthPageTransformer());



}

@Override
public void onBackPressed() {
if (mViewPager.getCurrentItem() == 0) {
// If the user is currently looking at the first step, allow the system to handle the
// Back button. This calls finish() on this activity and pops the back stack.
super.onBackPressed();
} else {
// Otherwise, select the previous step.
mViewPager.setCurrentItem(mViewPager.getCurrentItem() - 1);
}
}
}

SectionsPagerAdapter.java:

public class SectionsPagerAdapter extends FragmentPagerAdapter {

public SectionsPagerAdapter(FragmentManager fm) {
super(fm);
}

@Override
public Fragment getItem(int position) {

switch (position){

case 0:
return new Important();
case 1:
return new Propositions();
case 2:
return new Information();
}
return null;
}

@Override
public int getCount() {
// Show 3 total pages.
return 3;
}



@Override
public CharSequence getPageTitle(int position) {
Locale l = Locale.getDefault();
switch (position) {
case 0:
return ("Important Dates").toUpperCase(l);
case 1:
return ("Props").toUpperCase(l);
case 2:
return ("Information").toUpperCase(l);
}
return null;
}
}

Fragments都使用onCreateView()方法。

预先感谢您的帮助!

最佳答案

也许回复晚了,但我遇到过同样的问题。问题是您使用的 DepthPageTransformer 来自 Android Developers 示例的 PageTransformer

我假设堆叠 fragment 和图层优先级存在错误。通过修复自定义 PageTransformer 将解决您的“向后滑动”问题。或者,如果您不介意动画,只需删除自定义 PageTransformer 并使用默认动画(不添加任何内容)。

关于java - 滑动时的 Android ViewPager Bug,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26561175/

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