English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Androidのドロワー・メニューDrawerLayoutの使用方法の紹介

android support.v4 その中に、ドロワー・ビューウィジェットDrawerLayoutがあります。このウィジェットを使用すると、スクリーン上で水平にスライドしてメニューを開いたり閉じたりすることができ、ユーザーに良い体験を提供できます。

DrawerLayoutは、サイドメニューとメインコンテンツエリアの二つの部分に分かれています。サイドメニューは、ジェスチャーによって展開または隠すことができます。メインコンテンツエリアは、メニューのクリックに応じて変更されます。DrawerLayoutは、LinearLayoutと同様のコンテンツウィジェットであり、直接使用できます。

DrawerLayout属性

1、drawerPosition:drawerがどの側からスクリーンにスライドするかを指定します。

2、drawerWidth :drawerの幅を指定します、つまりウィンドウの端からビューに引っ張るより正確な幅です。

3、keyboardDismissMode :ドラッグが押し戻されたときにキーボードが応答するかどうかを決定します。

  • 'none' (デフォルト値), 拖動がキーボードに影響を与えません。
  • 'on-drag', 拖動開始、キーボードが押し戻されます。

4、onDrawerClose :ナビゲーションビューが閉じられたときに呼び出される関数。

5、onDrawerOpen :ナビゲーションビューが開かれたときに呼び出される関数。

6、onDrawerSlide :ナビゲーションビューとのインタラクションのときに呼び出される関数。

7、onDrawerStateChanged :Drawerの状態が変更されたときに呼び出される関数、drawerが 3 の状態: 

  •  idle -- 表示ナビゲーションビューとのインタラクションがありません
  •  dragging -- 表示現在、ナビゲーションビューとのインタラクションがあります
  •  settling -- 表示ナビゲーションビューとのインタラクションがあり、ナビゲーションビューが閉じられているまたは開いている状態です。

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(メール送信時、#を@に置き換えてください。報告を行い、関連する証拠を提供してください。一旦確認がとれましたら、本サイトは即座に侵害を疑われるコンテンツを削除します。)

基礎教程
おすすめ