如何实现导航抽屉布局?

时间:2020-03-30 17:37:13

标签: navigation navigation-drawer drawer

我想实现一个导航抽屉布局,在这里我想使用一个打开或关闭导航抽屉的切换栏。

您可以将主要活动java和xml文件的代码发送给我吗?

2 个答案:

答案 0 :(得分:1)

我做了一个可以正常工作的新代码:

Navigation_Header.xml

NamedRanges

Navigation_menu.xml

Sub NamedRanges(wb As Workbook, wSh As Worksheet)
    Dim myNamedRangeDynamicVendor As Range
    Dim myNamedRangeDynamicVendorCode As Range


    'Vendor Name range
    With wSh.Cells

        ...

值styles.xml

    http://localhost:3010/9/solution

Manifext.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="240dp"
    android:background="#72B569"
    android:gravity="bottom"
    android:orientation="vertical"
    android:padding="10dp">

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@mipmap/ic_launcher" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:paddingTop="10dp"
        android:text="Nazmul Islam"
        android:textColor="#fff"
        android:textSize="18dp"
        android:textStyle="bold" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="nazmul@voltagelab.com"
        android:textColor="#fff"
        android:textSize="15dp" />
</LinearLayout>

Activitymain.xml

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    tools:showInd="navigation_view">

    <group android:checkableBehavior="single">
        <item
            android:id="@+id/homes"
            android:icon="@drawable/ic_home_black_24dp"
            android:title="Home" />

        <item
            android:id="@+id/work"
            android:icon="@drawable/ic_work_black_24dp"
            android:title="Work" />
    </group>

    <item android:title="Communication">

        <menu>
            <item
                android:id="@+id/contact"
                android:icon="@drawable/ic_contact_phone_black_24dp"
                android:title="Contact" />
            <item
                android:id="@+id/share"
                android:icon="@drawable/ic_share_black_24dp"
                android:title="Share" />

        </menu>
    </item>
</menu>

MainActivity.java

<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>

答案 1 :(得分:0)

我做了一些简单的代码:

res>新> android资源文件>创建nav_menu

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    tools:showIn="navigation_view">

    <group android:checkableBehavior="single">
        <item android:id="@+id/home_id"
            android:title="Home"
            android:icon="@drawable/home"/>

        <item android:id="@+id/profile_id"
            android:title="Profile"
            android:icon="@drawable/contact"/>

        <item android:id="@+id/chat_id"
            android:title="Chat"
            android:icon="@drawable/chat"/>
    </group>

    <item android:title="Communicate">
        <menu>
            <item android:id="@+id/home_share"
                android:title="Share"
                android:icon="@drawable/share"/>

            <item android:id="@+id/contact"
                android:title="Contact"
                android:icon="@drawable/person"/>
        </menu>
    </item>
</menu>

导航标题

<?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="160dp"
    android:background="#A15858"
    android:orientation="vertical"
    android:padding="10dp"
    >
    <ImageView
        android:src="@mipmap/ic_launcher"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Nazmul Islam"
        android:textColor="#ffffff"
        android:textStyle="bold"
        android:paddingTop="10dp"/>
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="nazmulisrony@gmail.com"
        android:textColor="#fff"/>


</LinearLayout>

字符串xml

<resources>
    <string name="app_name">Navigation Drawer</string>
    <string name="open_string">Open</string>
    <string name="close_string">Close</string>
</resources>

活动主体

<?xml version="1.0" encoding="utf-8"?>
<androidx.drawerlayout.widget.DrawerLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:openDrawer="start"
    android:id="@+id/drawer"
    tools:context=".MainActivity">

    <com.google.android.material.navigation.NavigationView
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:id="@+id/navigationid"
        app:menu="@menu/nav_menu_layout"
        android:background="#ffffff"
        android:layout_gravity="start"
        app:headerLayout="@layout/nav_header"/>

</androidx.drawerlayout.widget.DrawerLayout>

现在添加MainActivity

public class MainActivity extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener {

    DrawerLayout drawerLayout;
    ActionBarDrawerToggle toggle;
    NavigationView navigationView;
    Intent intent;

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

        navigationView=findViewById(R.id.navigationid);

        navigationView.setNavigationItemSelectedListener(this);

        drawerLayout=findViewById(R.id.drawer);
        toggle=new ActionBarDrawerToggle(this,drawerLayout,R.string.open_string,R.string.close_string);

        drawerLayout.addDrawerListener(toggle);
        toggle.syncState();

        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    }

然后添加这两件事

@Override
    public boolean onOptionsItemSelected(@NonNull MenuItem item) {
        if (toggle.onOptionsItemSelected(item)){
            return true;
        }
        return super.onOptionsItemSelected(item);
    }

    @Override
    public boolean onNavigationItemSelected(@NonNull MenuItem menuItem) {
        if (menuItem.getItemId()==R.id.home_id){
            intent=new Intent(this,Home.class);
            startActivity(intent);
        }
        return false;
    }
}