0
正如我有片段有ViewPager在其中我顯示另外三個片段,現在從所有三個片段調用onCreateView
方法。 這是我的代碼。如何停止正在調用自定義ViewPager的onCreateView方法
public class CustomViewPager extends ViewPager {
private boolean enabled;
public CustomViewPager(Context context, AttributeSet attrs) {
super(context, attrs);
this.enabled = true;
}
@Override
public boolean onTouchEvent(MotionEvent event) {
if (this.enabled) {
return super.onTouchEvent(event);
}
return false;
}
@Override
public boolean onInterceptTouchEvent(MotionEvent event) {
if (this.enabled) {
return super.onInterceptTouchEvent(event);
}
return false;
}
public void setPagingEnabled(boolean enabled) {
this.enabled = enabled;
}
}
的Xml
<com.customView.CustomViewPager
android:id="@+id/newOrderContainerPager"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@+id/layout_next_previous"
android:layout_below="@+id/newTitle"
android:layout_marginBottom="@dimen/ten_dp">
</com.customView.CustomViewPager>
這裏是適配器
public class ViewPagerAdapter extends FragmentPagerAdapter {
private final List<Fragment> mFragmentList = new ArrayList<>();
private final List<String> mFragmentTitleList = new ArrayList<>();
public ViewPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {`enter code here`
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 Object instantiateItem(ViewGroup container, int position) {
return super.instantiateItem(container, position);
}
}
主要片段,該片段顯示ViewPager
@Override
public View setContentView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_new_order, container, false);
setupViewPager(customViewPager);
customViewPager.setPagingEnabled(false);
return view;
}
private void setupViewPager(ViewPager viewPager) {
ViewPagerAdapter adapter = new ViewPagerAdapter(getFragmentManager());
adapter.addFrag(new NewOrderFragmentFirstPage(), NewOrderFragmentFirstPage.class.getName());
adapter.addFrag(new NewOrderFragmentSecondPage(), NewOrderFragmentFirstPage.class.getName());
adapter.addFrag(new NewOrderFragmentThirdPage(), NewOrderFragmentThirdPage.class.getName());
viewPager.setAdapter(adapter);
}
public void onClick(View view) {
switch (view.getId()) {
case R.id.txt_Next:
txt_Previous.setVisibility(View.VISIBLE);
if (count < 3) {
count++;
}
customViewPager.setCurrentItem(customViewPager.getCurrentItem() + 1);
textView.setText(count + "/3");
break;
case R.id.txt_previous:
if (count > 1) {
count--;
}
if (count == 1) {
txt_Previous.setVisibility(View.INVISIBLE);
}
customViewPager.setCurrentItem(customViewPager.getCurrentItem() - 1);
textView.setText(count + "/3");
break;
}
}
請幫助。 感謝
您要添加在viewpager 3分個人的情況下,每一個是dealed作爲單獨片段所以onCreateView將被要求所有 –
好的,但我需要所有三個片段bacause按鈕單擊我必須顯示第二個和第三個。解決辦法是什麼。我已更新我的代碼,請檢查。 –
沒有Aditi的解決方案爲你工作? –