English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
android support.v4 その中に、ドロワー・ビューウィジェットDrawerLayoutがあります。このウィジェットを使用すると、スクリーン上で水平にスライドしてメニューを開いたり閉じたりすることができ、ユーザーに良い体験を提供できます。
DrawerLayoutは、サイドメニューとメインコンテンツエリアの二つの部分に分かれています。サイドメニューは、ジェスチャーによって展開または隠すことができます。メインコンテンツエリアは、メニューのクリックに応じて変更されます。DrawerLayoutは、LinearLayoutと同様のコンテンツウィジェットであり、直接使用できます。
DrawerLayout属性
1、drawerPosition:drawerがどの側からスクリーンにスライドするかを指定します。
2、drawerWidth :drawerの幅を指定します、つまりウィンドウの端からビューに引っ張るより正確な幅です。
3、keyboardDismissMode :ドラッグが押し戻されたときにキーボードが応答するかどうかを決定します。
4、onDrawerClose :ナビゲーションビューが閉じられたときに呼び出される関数。
5、onDrawerOpen :ナビゲーションビューが開かれたときに呼び出される関数。
6、onDrawerSlide :ナビゲーションビューとのインタラクションのときに呼び出される関数。
7、onDrawerStateChanged :Drawerの状態が変更されたときに呼び出される関数、drawerが 3 の状態:
8、renderNavigationView :ナビゲーションビューが画面の一方にレンダリングされ、引っ張ることができます。
例
使用导入依存ライブラリ
compile 'com.android.support:appcompat-v7:24.2.1'
レイアウトファイル
<?xml version="1.0" encoding="utf-8"?> <android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@"+id/v4_drawerlayout" android:layout_width="match_parent" android:layout_height="match_parent"> <FrameLayout android:id="@"+id/v4_drawerlayout_frame" android:layout_width="match_parent" android:layout_height="match_parent" > <TextView android:layout_width="match_parent" android:layout_height="match_parent" android:id="@"+id/v4_text" android:textSize="22sp" android:textColor="@color/colorAccent" android:gravity="center" /> </FrameLayout> <ListView android:layout_width="200dp" android:layout_height="match_parent" android:layout_gravity="left" android:id="@"+id/v4_listview" android:choiceMode="singleChoice" android:background="@android:color/white" /> </android.support.v4.widget.DrawerLayout>
Activity
public class DrawerActivity extends AppCompatActivity { private ListView listView; private DrawerLayout drawerLayout; private TextView textView; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.drawer_activity); initView(); } private void initView() { listView=(ListView) findViewById(R.id.v4_listview); drawerLayout=(DrawerLayout) findViewById(R.id.v4_drawerlayout); textView=(TextView) findViewById(R.id.v4_text); initDate(); } private void initDate(){ final List<String> list = new ArrayList<String>(); list.add("网易"); list.add("腾讯"); list.add("新浪"); list.add("搜狐"); ArrayAdapter<String> adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_)1, list); listView.setAdapter(adapter); listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<63;> parent, View view, int position, long id) { textView.setText(list.get(position)); showDrawerLayout(); } }); drawerLayout.openDrawer(Gravity.LEFT);//サイドスライドを開く(設定しないとデフォルトで開かない) } private void showDrawerLayout() { if (!drawerLayout.isDrawerOpen(Gravity.LEFT)) { drawerLayout.openDrawer(Gravity.LEFT); } drawerLayout.closeDrawer(Gravity.LEFT); } } }
実行結果は以下の図の通りです:
ダウンロード先:Drawerlayout_jb51.rar
これで本文のすべてが終わりました。皆様の学習に役立つことを願っています。また、呐喊チュートリアルを多くの皆様に支持していただけると嬉しいです。
声明:本文の内容はインターネットから提供され、著作権者に帰属します。インターネットユーザーにより自発的に提供されたコンテンツであり、本サイトは所有権を有しません。人工編集は行われていません。著作権侵害を疑われる内容がある場合は、メールで以下のアドレスまでお知らせください:notice#oldtoolbag.com(メール送信時、#を@に置き換えてください。報告を行い、関連する証拠を提供してください。一旦確認がとれましたら、本サイトは即座に侵害を疑われるコンテンツを削除します。)