android Activity增加右侧抽屉,抽屉中有一个列表代码
时间: 2024-01-21 20:02:08 浏览: 81
android中抽屉的代码
要在Android Activity中增加右侧抽屉,可以使用DrawerLayout控件。以下是一个简单的示例代码,其中抽屉中包含一个简单的列表:
```java
public class MyActivity extends AppCompatActivity {
private DrawerLayout mDrawerLayout;
private ListView mDrawerList;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 初始化DrawerLayout和ListView
mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
mDrawerList = (ListView) findViewById(R.id.drawer_list);
// 设置抽屉的列表项
String[] drawerItems = {"Item 1", "Item 2", "Item 3"};
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, drawerItems);
mDrawerList.setAdapter(adapter);
// 设置ActionBar的导航图标,用于打开抽屉
ActionBar actionBar = getSupportActionBar();
if (actionBar != null) {
actionBar.setHomeAsUpIndicator(R.drawable.ic_menu);
actionBar.setDisplayHomeAsUpEnabled(true);
}
}
// 处理ActionBar导航图标的点击事件,打开或关闭抽屉
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
if (mDrawerLayout.isDrawerOpen(mDrawerList)) {
mDrawerLayout.closeDrawer(mDrawerList);
} else {
mDrawerLayout.openDrawer(mDrawerList);
}
return true;
}
return super.onOptionsItemSelected(item);
}
}
```
在布局文件中,需要将主内容区域和抽屉区域都包含在DrawerLayout中,并设置相应的属性:
```xml
<android.support.v4.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<!-- 主内容区域 -->
<FrameLayout
android:id="@+id/content_frame"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<!-- 抽屉区域 -->
<ListView
android:id="@+id/drawer_list"
android:layout_width="240dp"
android:layout_height="match_parent"
android:layout_gravity="end"
android:background="@android:color/white"
android:choiceMode="singleChoice"
android:divider="@android:color/darker_gray"
android:dividerHeight="1dp" />
</android.support.v4.widget.DrawerLayout>
```
在这个示例中,抽屉位于右侧,宽度为240dp,背景色为白色,列表项之间有一条灰色的分割线。你可以根据自己的需要修改这些属性。
阅读全文