水平スクロール タブを設定しようとしていますが、ViewPager を使用していると言っている人を見てきました。
部分的に機能しています。フラグメント間を垂直にスクロールできますが、上部に別のタブを選択するためのタブがありません。
これが私のコードです
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<android.support.v4.view.ViewPager
android:id="@+id/viewpager"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
MyPageAdapter pageAdapter;
Context ctx;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_home);
ctx = this;
ActionBar actionBar = getActionBar();
assert actionBar != null;
if (savedInstanceState != null) {
actionBar.setSelectedNavigationItem(savedInstanceState.getInt("tab", 0));
}
List<Fragment> fragments = getFragments();
pageAdapter = new MyPageAdapter(getSupportFragmentManager(), fragments);
ViewPager pager = (ViewPager)findViewById(R.id.viewpager);
pager.setAdapter(pageAdapter);
}
private List<Fragment> getFragments(){
List<Fragment> fList = new ArrayList<Fragment>();
fList.add(MyFragment.newInstance("MyFragment 1"));
fList.add(MyFragment.newInstance("MyFragment 2"));
fList.add(MyFragment.newInstance("MyFragment 3"));
return fList;
}
class MyPageAdapter extends FragmentPagerAdapter {
private List<Fragment> fragments;
public MyPageAdapter(FragmentManager fm, List<Fragment> fragments) {
super(fm);
this.fragments = fragments;
}
@Override
public Fragment getItem(int position) {
return this.fragments.get(position);
}
@Override
public int getCount() {
return this.fragments.size();
}
}
v4サポートライブラリも含めています
dependencies {
compile ('com.android.support:support-v4:13.0.0', 'com.google.android.gms:play-services:3.1.36')
compile files('/libs/android-async-http-1.4.3.jar')
}
ただし、私の XML レイアウトでは、Element android.support.v4.view.ViewPager はここでは許可されていないという警告が表示されます。
ライブラリを正しく含めていないので、タブが表示されませんか?