sergiohlb Ответов: 0

Навигационный ящик Android с настраиваемой кнопкой RTL для закрытия после его открытия


У меня есть навигационный ящик во всю ширину экрана и под панелью инструментов. Она открывается справа налево. Я не использую фрагменты.

В вызывающем его действии мне нужно иметь только переключатель кнопок на выровненном конце ate, который открывает его. Все в порядке.

Моя проблема заключается в следующем: когда он открыт, мне нужно поместить стрелку назад (настроенный значок) не более чем слева от панели инструментов и заставить ее закрыть ND.

Метод OnCreate Активности :
this.toolbar = this.setCustomActionBar();

        this.chevron_back_icon = new IconicsDrawable(this)
                .icon(Icon.gmd_chevron_left)
                .color(Color.WHITE)
                .sizeDp(24);

        this.createDrawerMenu();

private Toolbar setCustomActionBar() {
    Toolbar toolbar = (Toolbar) this.findViewById(id.toolbar);
    this.setSupportActionBar(toolbar);
    this.supportActionBar = this.getSupportActionBar();
    if (this.supportActionBar != null) {
        this.supportActionBar.setDisplayHomeAsUpEnabled(false);
        this.supportActionBar.setDisplayShowHomeEnabled(false);
        this.supportActionBar.setDisplayShowTitleEnabled(false);
    }
    return toolbar;
}

private void createDrawerMenu() {
    this.drawer = (DrawerLayout) this.findViewById(id.drawer);
    ListView drawerList = (ListView) this.findViewById(id.list_view);

List<DrawerMenuItem> listItems = new ArrayList<>();
listItems.add(new DrawerMenuItem(Activity.ID_1, this.getString(string.menu_text_profile), drawable.ic_1));
listItems.add(new DrawerMenuItem(Activity.ID_2, this.getString(string.menu_text_payments), drawable.2));
listItems.add(new DrawerMenuItem(Activity.ID_3, this.getString(string.menu_text_my_wallet), drawable.3));
listItems.add(new DrawerMenuItem(Activity.ID_4, this.getString(string.menu_text_contact), drawable.ic_4));
listItems.add(new DrawerMenuItem(Activity.ID_5, this.getString(string.menu_text_logout), drawable.ic_5));

drawerList.setAdapter(new DrawerMenuAdapter(this, listItems));
drawerList.setOnItemClickListener(new DrawerItemClickListener());

this.toggle = new ActionBarDrawerToggle(
        this, this.drawer, this.toolbar, string.drawer_open, string.drawer_close);

this.toggle.setDrawerIndicatorEnabled(false);

this.drawer.addDrawerListener(this.toggle);
this.toggle.syncState();
this.toggle.setDrawerIndicatorEnabled(false);

NavigationView navigationView = (NavigationView) this.findViewById(id.nav_view);

int width = this.getResources().getDisplayMetrics().widthPixels;
LayoutParams params = (LayoutParams) navigationView.getLayoutParams();
params.width = width;
navigationView.setLayoutParams(params);
}


Toolbar.xml

<?xml version="1.0" encoding="utf-8"?>
<!-- App bar -->
<android.support.v7.widget.Toolbar
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="?attr/actionBarSize"
    android:layout_alignParentTop="true"
    android:layout_marginLeft="0dp"
    android:layout_marginStart="0dp"
    android:layout_marginTop="0dp"
    android:background="@color/primary_bar"
    android:minHeight="?attr/actionBarSize"
    android:theme="@style/ThemeOverlay.AppCompat.ActionBar"
    app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
    app:theme="@style/ToolBarStyle">

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical|center_horizontal"
        android:gravity="center_vertical|center_horizontal"
        android:orientation="horizontal">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/text_logo1
            android:textAlignment="center"
            android:textAllCaps="true"
            android:textColor="@color/yellow"
            android:textSize="36sp"
            />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text=" "
            android:textAlignment="center"
            android:textAllCaps="true"
            android:textSize="36sp"/>

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/text_logo2"
            android:textAlignment="center"
            android:textAllCaps="true"
            android:textColor="@color/white"
            android:textSize="36sp"/>
    </LinearLayout>

</android.support.v7.widget.Toolbar>


activity.xml

<include

        android:id="@+id/toolbar"

        layout="@layout/toolbar"/>


        <android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"

                                                android:id="@+id/drawer"

                                                android:layout_width="match_parent"

                                                android:layout_height="match_parent"



                                                tools:openDrawer="end">


            <RelativeLayout

                android:id="@+id/content"

                android:layout_width="match_parent"

                android:layout_height="match_parent">

                <RelativeLayout

                    android:id="@+id/content2"

                    android:layout_width="wrap_content"

                    android:layout_height="match_parent"

                    android:layout_centerVertical="false"

                    android:layout_marginBottom="?attr/actionBarSize">

                    <RelativeLayout

                        android:layout_width="wrap_content"

                        android:layout_height="wrap_content"

                        android:layout_centerVertical="true">

            <android.support.design.widget.NavigationView

                android:id="@+id/nav_view"

                android:layout_width="0dp"

                android:layout_height="match_parent"

                android:layout_gravity="end"

                android:background="@color/drawer_background_black"

                android:fitsSystemWindows="true">

                <RelativeLayout

                    android:layout_width="match_parent"

                    android:layout_height="match_parent">

                    <include

                        android:id="@+id/drawer_header"

                        layout="@layout/nav_header_main"/>

                    <ListView

                        android:id="@+id/list_view"

                        android:layout_width="@dimen/drawer_option_width"

                        android:layout_height="match_parent"

                        android:layout_below="@id/drawer_header"

                        android:layout_gravity="start"

                        android:background="@color/drawer_background_grey"

                        android:choiceMode="singleChoice"

                        android:divider="@android:color/transparent"

                        android:dividerHeight="0dp"/>


                    </RelativeLayout>

                </RelativeLayout>

            </android.support.design.widget.NavigationView>

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

</RelativeLayout>


Что я уже пробовал:

Накачайте меню на Энф и использовать дома бутон.

Поставить звонок на кнопку Home.

Скрытая кнопка Home.

Измените панель инструментов программно.

0 Ответов