Android Wear:使用FragmentPagerAdapter的WearableActivity

Jon*_*ren 1 android android-fragments android-viewpager wear-os

当使用WearableActivity你不能达到getSupportFragmentManager()FragmentPagerAdapter要求,所以你需要使用getFragmentManager().

活动

public MyWearActivity extends WearableActivity {

    public ArrayList<Fragment> mFragments;
    public ArrayList<String> mTitles;
    public ViewPager mViewPager;
    public PageFragmentPagerAdapter mPagerAdapter;

    @Override
    public void onCreate(Bundle b) {
        super.onCreate(b);
        setContentView(R.layout.main);
        fragments = new ArrayList<>();
        mTitles = new ArrayList<>();
        mViewPager = (ViewPager) findViewById(R.id.viewpager);
Run Code Online (Sandbox Code Playgroud)

        mPagerAdapter = new PageFragmentPagerAdapter(getFragmentManager()); <-- PROBLEM
Run Code Online (Sandbox Code Playgroud)

        // More code
    }
}
Run Code Online (Sandbox Code Playgroud)

寻呼机适配器

public class PageFragmentPagerAdapter extends FragmentPagerAdapter {

    public PageFragmentPagerAdapter(FragmentManager fm) {
Run Code Online (Sandbox Code Playgroud)

        super(fm); <-- PROBLEM
Run Code Online (Sandbox Code Playgroud)

    }

    @Override
    public int getCount() {
        return mFragments.size();
    }

    @Override
    public PageFragment getItem(int position) {
        return mFragments.get(position);
    }

    @Override
    public CharSequence getPageTitle(int position) {
        return mTitles.get(position);
    }
}
Run Code Online (Sandbox Code Playgroud)

我怎样才能使用FragmentPagerAdapter内部WearableActivity

小智 5

刚遇到同样的问题.

我加入了它

compile 'com.android.support:support-v13:23.1+'
Run Code Online (Sandbox Code Playgroud)

到build.gradle文件中的依赖项.然后在哪里使用FragmentPagerAdapter添加

import android.support.v13.app.FragmentPagerAdapter;
Run Code Online (Sandbox Code Playgroud)

不确定是否还有更好的方法.