ViewPagerコンポーネント
4215 ワード
ViewPagerは、現在の画面のリスト項目と左右の隣接ページのデータをデフォルトでロードするので、setOffScreenPageLimit(int)メソッドを使用して、隣接ページのプリロード数をカスタマイズすることもできます.
ViewPagerを使用したレイアウトファイル
ViewPagerクラスはサポートライブラリから来ており、レイアウトに追加するときはフルネームandroidを使用します.support.v4.view.ViewPager
FragmentStatePagerAdapter
ViewPagerにはPagerAdapterのサポートが必要であり、両者の関係は非常に複雑であるが、PagerAdapterのサブクラスFragmentStatePagerAdapterを利用すると、多くのサブクラスが2つの方法getCountを実現する必要があることを簡略化することができる.getItem(int)[構成済みのCrimeFragmentに戻って明示的なタスクを完了する]
指定項目の表示
ViewPagerのデフォルトでは、PagerAdapterの最初のリスト項目のみが表示されます.setCurrentItem(int)指定項目を表示させる
FragmentPagerAdapterは別の利用可能なPagerAdapterである.FragmentStatePagerAdapterとの違いは、不要になったfragmentをアンインストールする際の処理方法が異なることである.詳細ビューの内容が多くページ分けで表示する必要がある場合、activityごとに通常2、3つのfragmentしか管理されていません.メモリの問題を心配する必要はありません.2、FragmentStatePagerAdapterは不要なfragmentを破棄します.onSaveInstanceStateメソッドで情報を保存できます.ユーザーが戻ってきたときに保存したインスタンスの状態を切り替えると、新しいfragmentの生成を復元できます.これにより、メモリを節約できます.
ViewPagerがfragment以外のビューを管理する必要がある場合、元のPagerAdapterインタフェースを実現する必要があります.たとえば、管理ピクチャがPagerAdapterインタフェースを実現するには、ViewPager-PagerAdapterとRecyclerView-Adapterのそれぞれの関係の異同PagerAdapterがビューに戻るonBindViewHolderメソッドを使用しないことを理解する必要があります.次の方法を使用します.
方法1:指定した場所のリストアイテムビューを作成し、ViewGroupビューコンテナに追加します.すぐにビューを作成する必要はありません.PagerAdapterは、ビューメソッドを作成するタイミングを自分で決定します.2:作成したビューを破棄します.
ViewPagerを使用したレイアウトファイル
.support.v4.view.ViewPager
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/activity_crime_view_pager"
android:layout_height="match_parent"
android:layout_width="match_parent">
.support.v4.view.ViewPager>
ViewPagerクラスはサポートライブラリから来ており、レイアウトに追加するときはフルネームandroidを使用します.support.v4.view.ViewPager
FragmentStatePagerAdapter
FragmentManager fragmentManager=getSupportFragmentManager();
mViewPager.setAdapter(new FragmentStatePagerAdapter(fragmentManager){
@Override
public Fragment getItem(int position){
Crime crime=mCrimes.get(position);
return CrimeFragment.newInstance(crime.getId());
}
@Override
public int getCount(){
return mCrimes.size();
}
});
ViewPagerにはPagerAdapterのサポートが必要であり、両者の関係は非常に複雑であるが、PagerAdapterのサブクラスFragmentStatePagerAdapterを利用すると、多くのサブクラスが2つの方法getCountを実現する必要があることを簡略化することができる.getItem(int)[構成済みのCrimeFragmentに戻って明示的なタスクを完了する]
指定項目の表示
UUID crimeId=(UUID)getIntent().getSerializableExtra(EXTRA_CRIME_ID);
for(int i=0;i
{
if(mCrimes.get(i).getId().equals(crimeId)){
mViewPager.setCurrentItem(i);
break;
}
}
ViewPagerのデフォルトでは、PagerAdapterの最初のリスト項目のみが表示されます.setCurrentItem(int)指定項目を表示させる
FragmentPagerAdapterは別の利用可能なPagerAdapterである.FragmentStatePagerAdapterとの違いは、不要になったfragmentをアンインストールする際の処理方法が異なることである.詳細ビューの内容が多くページ分けで表示する必要がある場合、activityごとに通常2、3つのfragmentしか管理されていません.メモリの問題を心配する必要はありません.2、FragmentStatePagerAdapterは不要なfragmentを破棄します.onSaveInstanceStateメソッドで情報を保存できます.ユーザーが戻ってきたときに保存したインスタンスの状態を切り替えると、新しいfragmentの生成を復元できます.これにより、メモリを節約できます.
ViewPagerがfragment以外のビューを管理する必要がある場合、元のPagerAdapterインタフェースを実現する必要があります.たとえば、管理ピクチャがPagerAdapterインタフェースを実現するには、ViewPager-PagerAdapterとRecyclerView-Adapterのそれぞれの関係の異同PagerAdapterがビューに戻るonBindViewHolderメソッドを使用しないことを理解する必要があります.次の方法を使用します.
public Object instantiateItem(ViewGroup container,int position)
public void destroyItem(ViewGroup container,int position,Object object)
public abstract boolean isViewFromObject(View view,Object object)
方法1:指定した場所のリストアイテムビューを作成し、ViewGroupビューコンテナに追加します.すぐにビューを作成する必要はありません.PagerAdapterは、ビューメソッドを作成するタイミングを自分で決定します.2:作成したビューを破棄します.