当前位置: 移动技术网 > 移动技术>移动开发>Android > 摸鱼学Android 二十二 (侧边菜单)

摸鱼学Android 二十二 (侧边菜单)

2020年09月27日  | 移动技术网移动技术  | 我要评论
摸鱼学Android 二十二 (侧边菜单)UI控件之十二 DrawerLayout(侧滑菜单)1 说明2 使用3 实例UI控件之十二 DrawerLayout(侧滑菜单)1 说明drawerLayout分为侧滑菜单和主内容区两部分,侧滑菜单可以根据手势展开与隐藏,主内容区的内容可以随着菜单的点击而变化。2 使用注意事项:主内容视图一定要是DrawerLayout的第一个子视图主内容视图的宽高需要match_parent必须指定侧滑菜单的layout_gravity属性,start表示从左向

摸鱼学Android 二十二 (侧边菜单)

UI控件之十二 DrawerLayout(侧滑菜单)

1 说明

drawerLayout分为侧滑菜单和主内容区两部分,侧滑菜单可以根据手势展开与隐藏,主内容区的内容可以随着菜单的点击而变化。

2 使用

注意事项:

  • 主内容视图一定要是DrawerLayout的第一个子视图
  • 主内容视图的宽高需要match_parent
  • 必须指定侧滑菜单的layout_gravity属性,start表示从左向右滑出,end表示从右向左滑出
  • 侧滑菜单的宽度以dp为单位,不建议超过320dp

3 实例

  1. 主布局,最外层是DrawerLayout,主布局必须是第一个子视图
<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">

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                    android:id="@+id/ly_content"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:orientation="vertical">

        <TextView
                android:id="@+id/tv_content"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerInParent="true"
                android:text="默认文本"
                android:textSize="25sp" />

    </RelativeLayout>

    <ListView
            android:id="@+id/list_left_drawer"
            android:layout_width="180dp"
            android:layout_height="match_parent"
            android:layout_gravity="start"
            android:background="#080808"
            android:choiceMode="singleChoice"
            android:divider="#FFFFFF"
            android:dividerHeight="1dp" />

</android.support.v4.widget.DrawerLayout>
  1. 自定义Adapter,复用前几节的MyAdapter
  2. 初始化侧滑菜单,重写点击事件
public class MainActivity extends AppCompatActivity  implements AdapterView.OnItemClickListener{

    private DrawerLayout drawer_layout;
    private ListView list_left_drawer;
    private ArrayList<Icon> menuLists;
    private MyAdapter<Icon> myAdapter = null;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        drawer_layout = (DrawerLayout) findViewById(R.id.drawer_layout);
        list_left_drawer = (ListView) findViewById(R.id.list_left_drawer);

        menuLists = new ArrayList<Icon>();
        menuLists.add(new Icon(R.drawable.torch,"手电筒"));
        menuLists.add(new Icon(R.drawable.mike,"麦克风"));
        menuLists.add(new Icon(R.drawable.printer,"打印机"));
        menuLists.add(new Icon(R.drawable.game,"游戏"));

        myAdapter = new MyAdapter<Icon>(menuLists, R.layout.item_icon) {
            @Override
            public void bindView(ViewHolder holder, Icon obj) {
                holder.setImageResource(R.id.img_icon, obj.getiId());
                holder.setText(R.id.tv_name, obj.getiName());
            }
        };

        list_left_drawer.setAdapter(myAdapter);
        list_left_drawer.setOnItemClickListener(this);
    }

    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
        TextView textView = findViewById(R.id.tv_content);
        textView.setText(menuLists.get(position).getiName());

        drawer_layout.closeDrawer(list_left_drawer);
    }
}
  1. 运行App,按住鼠标向右滑动,任意点击一项,主布局文本将对应修改
    在这里插入图片描述

本文地址:https://blog.csdn.net/qq_23470315/article/details/108827410

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网