android界面设计(二)侧边栏的两种实现方式

dome:https://github.com/linliangliang/sidebar

一、使用sideingMenu结合fragment实现。

二、使用NavigationView和DrawerLayout实现。

第一种实现方式:https://mp.csdn.net/postedit/84612432

1、下面介绍使用NavigationView,DrawerLayout的方式实现侧边栏。

gradle配置:版本根据自己的targetSdkVersion:26写。

compile 'com.android.support:design:26.0.0'
implementation 'com.android.support:appcompat-v7:26.0.0'

activity_main.xml:

<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/drawer_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true">

    <android.support.design.widget.CoordinatorLayout
        android:id="@+id/main_content"
        android:layout_width="368dp"
        android:layout_height="551dp"
        tools:layout_editor_absoluteX="8dp"
        tools:layout_editor_absoluteY="8dp">

        <FrameLayout
            android:id="@+id/frame_content"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_below="@+id/appbar"
            android:elevation="5dp"
            android:scrollbars="none"
            app:layout_behavior="@string/appbar_scrolling_view_behavior" />
    </android.support.design.widget.CoordinatorLayout>


    <android.support.design.widget.NavigationView xmlns:app="http://schemas.android.com/apk/res-auto"
        android:id="@+id/navigation_view"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_gravity="left"
        app:headerLayout="@layout/head"
        app:menu="@menu/new_menu"></android.support.design.widget.NavigationView>
    

</android.support.v4.widget.DrawerLayout>

其中app:headerLayout="@layout/head"   app:menu="@menu/new_menu"

需要两个文件1、head.xml文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#03A9F4"
    android:gravity="center"
    android:orientation="vertical">

    <ImageView
        android:id="@+id/person"
        android:layout_width="72dp"
        android:layout_height="72dp"
        android:layout_marginTop="42dp"
        android:src="@mipmap/usericon_32" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="24dp"
        android:text="你的名字"
        android:textColor="#ffffff"
        android:textSize="20sp" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginBottom="18dp"
        android:layout_marginTop="12dp"
        android:text="简介:生容易、活容易、生活不容易!"
        android:textColor="#ffffff"
        android:textSize="16sp" />

</LinearLayout>

2、在res文件夹下面新建一个menu文件夹,文件夹中新建一个new_menu.xml文件:

<?xml version="1.0" encoding="UTF-8" ?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <group android:checkableBehavior="single">
        <item
            android:id="@+id/favorite"
            android:checkable="true"
            android:icon="@mipmap/usericon_32"
            android:title="社区" />
    </group>
    <item
        android:id="@+id/wallet"
        android:icon="@mipmap/usericon_32"
        android:title="问答" />
    <item
        android:id="@+id/photo"
        android:icon="@mipmap/usericon_32"
        android:title="我的" />
    <item
        android:id="@+id/dress"
        android:icon="@mipmap/usericon_32"
        android:title="设置" />
</menu>

其中涉及的图片自己添加。

修改androidmanifest.xml文件中的样式属性:

<application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme.NoActionBar">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

其中 AppTheme.NoActionBar需要在style中新建一个样式:AppTheme.NoActionBar

<resources>

    <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
    </style>
    <style name="AppTheme.NoActionBar">
        <item name="windowActionBar">false</item>
        <item name="windowNoTitle">true</item>
    </style>

</resources>

猜你喜欢

转载自blog.csdn.net/qq_25066049/article/details/84613568