3

私はフラグメントを使用してviewPagerに取り組んでおり、別のモジュールのランタイム許可の実装を開始する前に、すべてが完璧に機能していました。

これが私のviewPagerアダプターです。

public class DashboardAdapter extends FragmentStatePagerAdapter {


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

  @Override
  public Fragment getItem(int position) {

      switch (position) {
         case 0:
             return FunkyInboxFragment.newInstance(position);
         case 1:
             return FunkyTakePhotoFragment.newInstance(position);
         case 2:
             return FunkyAddFriendsFragmnet.newInstance(position);
         default:
             return FunkyTakePhotoFragment.newInstance(position);
      }
  }

  @Override
  public int getCount() {
     return 3;
  }

  @Override
  public Object instantiateItem(ViewGroup container, int position) {
     Fragment fragment = (Fragment) super.instantiateItem(container,   position);
      return fragment;
  }


  @Override
  public void destroyItem(ViewGroup container, int position, Object object) {
  }

}

ここでは、フラグメントごとに異なる権限が必要だったので、共通のアクティビティ クラスを作成しました。同じフラグメントで動作していますが、viewPager をスワイプすると、次のフラグメントの後のフラグメントと前のフラグメントの前のフラグメントが空白になります。アダプターで可能なすべての変更を行いましたが、適切な結果が得られませんでした。

誰でもそれを手伝ってください!

4

2 に答える 2

0
package com.example.madhavgor.actionbardemolast;

import android.os.Bundle;
import android.support.design.widget.TabLayout;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;

import java.util.ArrayList;
import java.util.List;

public class MainActivity extends AppCompatActivity {
private Toolbar toolbar;
private TabLayout tabLayout;
private ViewPager viewPager;
private int[] tabIcons = {
        R.mipmap.ic_launcher,R.mipmap.ic_launcher_bluetooth
};

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    //toolbar = (Toolbar) findViewById(R.id.toolbar);
    //setSupportActionBar(toolbar);

 getSupportActionBar().setDisplayHomeAsUpEnabled(true);

    viewPager = (ViewPager) findViewById(R.id.viewPager);
    setupViewPager(viewPager);

    tabLayout = (TabLayout) findViewById(R.id.tabs);
    tabLayout.setupWithViewPager(viewPager);
    setupTabIcons();
}

private void setupTabIcons() {
    tabLayout.getTabAt(0).setIcon(tabIcons[0]);
    tabLayout.getTabAt(1).setIcon(tabIcons[1]);
}

private void setupViewPager(ViewPager viewPager) {
    ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager());
    adapter.addFragment(new OneFragment(), "ONE");
    adapter.addFragment(new SecondFragment(), "BLUETOOTH");
    adapter.addFragment(new ThirdFragment(), "THREE");
    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);
    }
}

}

//このコードを参照してください....役立つかもしれません..

于 2016-05-31T09:47:32.790 に答える