2021. 03. 10
22450 ワード
1.ビューパネル
ビューアとは、左右スクロールで複数の画面を切り替えることができる部品のこと.各画面はタグで構成され、ページアダプタでタグを管理します.SDKが提供するFragmentStatePagerAdapterを使用して実装します.
1)ビューインタフェースをレイアウトに追加する
アクティブなレイアウトにViewPagerラベルを追加します.
<android.support.v4.view.ViewPager
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="match_parent"
></android.support.v4.view.ViewPager>
2)アダプタ宣言
前述したように、SDKが提供するFragmentStatePagerAdapterを継承するアダプタクラスを定義します.次に、itemsに計画を格納するCustomAdapterの例を示します.この場合、getCountメソッドとgetItemメソッドを上書きする必要があります.
class CustomAdapter extends FragmentStatePagerAdapter{
ArrayList<Fragment> items = new ArrayList<Fragment>();
public MoviePagerAdapter(FragmentManager fm) {
super(fm);
}
public void addItem(Fragment item){
items.add(item);
}
@Override
public int getCount() {
return items.size();
}
@Override
public Fragment getItem(int position) {
return items.get(position);
}
}
次にActivityでビューアを検索し、setAdapterメソッドを使用してビューアのアダプタを設定します. ViewPager pager = (ViewPager) findViewById(R.id.pager);
pager.setOffscreenPageLimit(3); // 최대 화면 갯수를 3개로
CustomAdapter adapter = new CustomAdapter(getSupportFragmentManager());
Fragment1 fragment = new Fragment();
adapter.addItem(fragment); // 프래그먼트 추가
'''
pager.setAdapter(adapter); // 어댑터 설정
もう1つのコンポーネントは、主にxmlファイル、ビューラベルでPagerTitleStripを宣言し、アダプタクラスでgetPageTitleメソッドを上書きします.
public CharSequence getPageTitle(int position) {
return "페이지 "+position+"/"+items.size();
}
2.ショートカット
ショートカットとは、画面上で左上隅、アクションバー左側のマークをクリックしたときに表示される画面です.
ショートカットはNavigationViewで実現できます.まずxmlレイアウトファイルにNavigationViewタグを追加し、Javaファイルで機能を実現します.
1)xmlレイアウト
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:openDrawer="start">
<android.support.design.widget.NavigationView
android:id="@+id/nav_view"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
android:fitsSystemWindows="true"
app:headerLayout="@layout/nav_header_main"
app:menu="@menu/activity_main_drawer" />
</android.support.v4.widget.DrawerLayout>
DrawerLayoutにNavigationViewラベルを追加すると、ショートカット画面が作成されます.ショートカットメニューの構成が/res/mメニューフォルダに保存されます.簡単な例を以下に示します.
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
tools:showIn="navigation_view">
<group android:checkableBehavior="single">
<item
android:id="@+id/nav0"
android:icon="@drawable/ic_menu_camera"
android:title="첫번째" />
<item
android:id="@+id/nav1"
android:icon="@drawable/ic_menu_gallery"
android:title="두번째" />
<item
android:id="@+id/nav2"
android:icon="@drawable/ic_menu_slideshow"
android:title="세번째" />
</group>
</menu>
2.ショートカットアイテム機能の実現
ショートカットメニューをクリックすると、直接呼び出されたonNavigationItemSelectedメソッドが重畳され、機能が実現されます.次の例では、クリックしたメニューごとにonFragmentSelectedメソッドを実行します.
public boolean onNavigationItemSelected(MenuItem item) {
// Handle navigation view item clicks here.
int id = item.getItemId();
if (id == R.id.nav0) {
onFragmentSelected(0, null);
} else if (id == R.id.nav1) {
onFragmentSelected(1, null);
} else if (id == R.id.nav2) {
onFragmentSelected(2, null);
}
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
drawer.closeDrawer(GravityCompat.START);
return true;
}
Reference
この問題について(2021. 03. 10), 我々は、より多くの情報をここで見つけました https://velog.io/@ajdxjdrnfl/2021.-03.-10テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol