xml地图|网站地图|网站标签 [设为首页] [加入收藏]

您的位置:亚洲必赢 > 计算机尝试 > Library系列之二

Library系列之二

发布时间:2020-02-15 07:21编辑:计算机尝试浏览(172)

    在后日的IO大会上,谷歌带给了Android M,同不时间还也可以有Android帮助库的新生机勃勃轮更新,当中更是增添叁个全新的支持库Android Design Support Library,满含了数个入眼的Material Design组件,用于将Material Design适配到Android 2.1。

    一、 DrawerLayout

    DrawerLayout官方网址教程
    DrawerLayout官网API
    在无数利用中都会有抽屉式导航栏,鉴于此,谷歌(Google卡塔尔就提供了DrawerLayout来兑现那些功能.

    DrawerLayout在v4包中,使用时索要导入v4包,使用eclipse创立项目会自动导入v4包,使用studio创设项目时会自动增加v7信任,v7是异常v4的,所以平昔用正是了......

    Google在二〇一六年I / O 会议上,发布了二个新规划的补助库,它能够帮助大家带给大气的metrail design设计组件,满含导航栏视图,浮动标签,浮动动作开关,snackbars和新的框架来整合运动和滚动事件。该库扶助Android 2.3及更加高版本。

    要实用Android Design Support Library要求丰裕援引:

    能够通过官方博客,文档,和德姆o示例来快速领悟。Design Support Library现在满含NavigationView,TextInputLayout,FloatingActionButton,Snackbar,TabLayout,CoordinatorLayout。要利用Design Support Library,请先更新SDK中的Android Support Repository到新型版,然后在工程中充裕正视

    1、 DrawerLayout的归纳利用

    DrawerLayout的选拔超轻巧,只要依据多少个法则就能够了
    Library系列之二。构造文件:

    <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
            android:layout_width="match_parent"
            android:layout_height="match_parent">
            <TextView
                android:id="@ id/tv_main"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="主页面" />
        </RelativeLayout>
    
        <ListView
            android:id="@ id/list_view"
            android:layout_width="240dp"
            android:layout_height="match_parent"
            android:layout_gravity="start"
            android:background="@android:color/holo_blue_dark"
            android:choiceMode="singleChoice"
            android:divider="@android:color/transparent"
            android:dividerHeight="0dp"
            android:scrollbars="none" />
    
    </android.support.v4.widget.DrawerLayout>
    

    直白接收DrawerLayout作为根标签,然后DrawerLayout依照android:layout_gravity质量剖断哪些是侧滑面板,使用start/end或者left/right来表达是抽屉式导航栏是侧面的依旧侧面的,未有android:layout_gravity质量的就是主页面视图了.

    ok,轻便的侧滑效果完毕了,正是这么轻松,来看一下效率图:

    是还是不是很简短,官方网站介绍了运用DrawerLayout的几条规范:
    1、DrawerLayout最棒注脚为根标签
    2、在DrawerLayout中,主页面视图(上面包车型地铁TextView那有个别,当然,那一个内容是你和谐决定的,不断定若是TextView)不得不是第3个子视图
    3、主页面视图设置为相称父视图的宽度和中度, 因为在抽屉式导航栏处于隐蔽状态时, 它代表全数 UI
    4、抽屉式导航栏视图 必得利用 android:layout_gravity属性钦定
    万意气风发要协理“从右到左”(RTLState of Qatar 语言,请使用 "start"(而非"left")钦点该值(那样当布局为 RTL 时,抽屉式导航栏会显示在左边手)。

    PS:RTL正是从右到左(Right To Left)的构造,大家在四哥伦比亚大学上/设置/开荒者选项中有二个威胁行使从右到左的构造方向,能够张开试生龙活虎试效果.
    虽说大家本国app通常都以从左到右,但我们依旧听谷歌(GoogleState of Qatar的建议比较好,使用start/end而非left/right.

    5、抽屉式导航栏视图以 dp 为单位钦命其调幅, 且中度与父视图相相配。抽屉式导航栏的肥瘦不应超越320dp,进而客户一贯能够阅览一些主内容。

    该库的第生龙活虎功用如下:
    • FloatingActionButton
    • Tablayout
    • NavigationView
    • SnackBar
    • CoordinatorLayout

    这里大家来看下效果图

    image.png

    image.png

    image.png

    此间作者只列举各样,以上各样小编都会挨个进行教学,终归这个零件已经普遍的利用了。
    亟待代码点击获取

    compile 'com.android.support:design:22.2.0'

    compile 'com.android.support:design:22.2.0'

    2、 抽屉的数额填充

    抽屉其实只是四个家常的View,这里笔者放的是ListView,看起来就好像菜单,当然,你一丝一毫能够只放多少个ImageView、TextView等等。那和Activity的美食指南不雷同,Activity的美食指南只须求在资源文件中定义好,就会依据牢固的花样展现出来。而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
            android:layout_width="match_parent"
            android:layout_height="match_parent">
            <TextView
                android:id="@ id/tv_main"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerInParent="true"
                android:text="主页面" />
            <Button
                android:id="@ id/bt_open"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentRight="true"
                android:text="打开" />
    
        </RelativeLayout>
    
        <ListView
            android:id="@ id/list_view"
            android:layout_width="240dp"
            android:layout_height="match_parent"
            android:layout_gravity="start"
            android:background="@android:color/holo_blue_dark"
            android:choiceMode="singleChoice"
            android:divider="@android:color/transparent"
            android:dividerHeight="0dp"
            android:scrollbars="none" />
    
    </android.support.v4.widget.DrawerLayout>
    

    MainActivity.java

    public class MainActivity extends AppCompatActivity {
    
        private List<String> mDatas;
        private DrawerLayout mDrawerLayout;
        private ListView mListView;
        private TextView tvMain;
        private Button btOpen;
    
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            initData();
            initView();
    
            mListView.setAdapter(new ArrayAdapter<>(MainActivity.this,android.R.layout.simple_list_item_1,mDatas));
    
            /**
             * 点击菜单条目更改主界面TextView内容,同时关闭菜单
             *      关闭菜单使用DrawerLayout.closeDrawer()方法,传入要关闭的菜单View或者菜单的方向都可以
             */
            mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                @Override
                public void onItemClick(AdapterView<?> adapterView, View view, int position, long id) {
                    tvMain.setText(mDatas.get(position));
                    mDrawerLayout.closeDrawer(mListView);
    //              mDrawerLayout.closeDrawer(GravityCompat.START);
                }
            });
    
            /**
             *  打开菜单使用DrawerLayout.openDrawer()方法,传入要关闭的菜单View或者菜单的方向都可以
             */
            btOpen.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    mDrawerLayout.openDrawer(GravityCompat.START);
    //              mDrawerLayout.openDrawer(mListView);
                }
            });
        }
    
        private void initView() {
            mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
            mListView = (ListView) findViewById(R.id.list_view);
            tvMain = (TextView) findViewById(R.id.tv_main);
            btOpen = (Button) findViewById(R.id.bt_open);
        }
    
        private void initData() {
            mDatas = new ArrayList<>();
            for (int i = 'A'; i < 'Z'; i  ) {
                mDatas.add(""   (char) i);
            }
        }
    }
    

    效果图

    事实上支付中这里的主页面视图平日用FrameLayout代替,点击菜单条约,动态为FrameLayout增加内容.
    ok,轻松的介绍了DrawerLayout的施用,接下去来看一下我们前些天的顶梁柱

    Snackbar

    Snackbar提供了三个在乎Toast和AlertDialog之间轻量级控件,它能够很实惠的提供消息的提醒和动作反馈。
    Snackbar的行使与Toast的行使基本雷同:

    Snackbar.make(view, "Snackbar comes out", Snackbar.LENGTH_LONG)
                            .setAction("Action", new View.OnClickListener() {
                                @Override
                                public void onClick(View v) {
                                    Toast.makeText(
                                            MainActivity.this,
                                            "Toast comes out",
                                            Toast.LENGTH_SHORT).show();
                                }
                            }).show();
    

    概略的效果:

    图片 1

    image.png

    时下以此控件笔者还未用过

    上面让我们先来试试Navigation View。

    二、NavigationView

    NavigationView官方网站教程

    TextInputLayout

    TextInputLayout是将EditText富含起来使用的,不能独立使用。

    在Material Design中,Navigation drawer导航抽屉,被规划用来选拔导航,提供了风姿浪漫种通用的导航方式,体现了安排的意气风发致性。而NavigationView的卓尔不群用处正是协作在此之前v4包的DrawerLayout,作为内部的Drawer部分,即导航菜单的本体部分。NavigationView是三个导航菜单框架,使用menu财富填充数据,使大家能够更简便易行便捷的兑现导航菜单。它提供了准确的暗许样式、选中项高亮、分组单选、分组子标题、以致可选的Header。

    1、NavigationView是什么

    NavigationView就是菜单View,也正是地点大家应用的ListView那部分。
    那就是说,有了DrawerLayout之后怎么还有也许会产出一个NavigationView,看上面那张图:

    这种成效的菜单用ListView或许RecyclerView也能贯彻,可是总要花点时间啊,不过用NavigationView之后几乎分分钟解决.

    Floating Action Button

    floating action button 是三个顶住显示分界面基本操作的圆形开关。

    图片 2

    image.png

    本文由亚洲必赢发布于计算机尝试,转载请注明出处:Library系列之二

    关键词: Android... Android Design Support