una studio samsung quitar poner para nova iconos icono como cambiar cajon boton app aplicaciones aplicacion android android-listview drawerlayout

android - studio - nova launcher



¿Cómo configurar el ícono de diseño de cajón en el lado derecho de la pantalla del dispositivo? (6)

Aquí hay una solución de vacío que funcionó en mi caso.

toggle = new ActionBarDrawerToggle( this, drawer, toolbar0, R.string.open_nav, R.string.close_nav);

Hice una barra de herramientas para ello.

<android.support.design.widget.AppBarLayout android:layout_width="match_parent" android:layout_height="wrap_content"> <FrameLayout android:layout_width="match_parent" android:layout_height="wrap_content"> <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:layout_marginRight="40dp" android:layout_marginEnd="40dp" android:background="@color/colorPrimary"> <!-- this is your general toolbar--> <TextView android:id="@+id/title" android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_gravity="right|end|center_vertical" android:text="Mytitle"/> </android.support.v7.widget.Toolbar> <android.support.v7.widget.Toolbar android:id="@+id/toolbar0" android:layout_width="40dp" android:layout_height="?attr/actionBarSize" android:layout_gravity="right|end" android:background="?attr/colorPrimary" app:popupTheme="@style/ThemeOverlay.AppCompat.Light" /> <!-- this is your nav-button toolbar--> </FrameLayout> </android.support.design.widget.AppBarLayout>

y establece onclicklistener para ello:

toolbar0.setNavigationOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (drawer.isDrawerOpen(Gravity.RIGHT)) { drawer.closeDrawer(Gravity.RIGHT); } else { drawer.openDrawer(Gravity.RIGHT); } } });

He creado la aplicación de ejemplo de diseño de cajón, funciona bien, mi problema es que el diseño de cajón funciona de derecha a izquierda perfectamente, pero estoy intentando mover el icono del lado izquierdo al lado derecho, pero no funciona. ¡Dame tu sugerencia ...! Esto es posible o no?

<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" android:layout_gravity="right" > <!-- The main content view --> <FrameLayout android:id="@+id/content_frame" android:layout_width="match_parent" android:layout_height="match_parent" /> <!-- The navigation drawer --> <ListView android:id="@+id/drawer_list" android:layout_width="240dp" android:layout_height="match_parent" android:layout_gravity="right" android:background="#111" android:choiceMode="singleChoice" android:divider="@android:color/transparent" android:dividerHeight="0dp" /> </android.support.v4.widget.DrawerLayout>


De la Guía del desarrollador :

El posicionamiento y la disposición del cajón se controlan mediante el atributo android: layout_gravity en las vistas secundarias correspondientes al lado de la vista desde el que quiere que emerja el cajón: izquierda o derecha. (O iniciar / finalizar en las versiones de plataforma que admiten la dirección de diseño).

Lo que significa, puedes hacer esto por:

<DrawerLayout android:layout_gravity="right"> </DrawerLayout>

Editar

De acuerdo con Crear un cajón de navegación ,

La vista del cajón (el ListView) debe especificar su gravedad horizontal con el atributo android: layout_gravity. Para admitir idiomas de derecha a izquierda (RTL), especifique el valor con "inicio" en lugar de "izquierda" (de modo que el cajón aparezca a la derecha cuando el diseño sea RTL).

Así que deberías hacer:

<DrawerLayout android:layout_gravity="start"> </DrawerLayout>


Este icono representa el menú de navegación, que por diseño debe estar en el lado izquierdo de la pantalla. De acuerdo con las pautas, podemos tener un cajón de navegación en el lado derecho, pero eso se usará para modificar el contenido (por ejemplo, los filtros). Para todos estos propósitos, es posible que desee utilizar ActionbarItem y colocar un ActionItem en la esquina derecha de la pantalla. Haga clic en ese elemento de acción para abrir o cerrar el cajón de navegación derecho.

Pero seguro, según el diseño, este ícono de menú animado de tres líneas, que representa la navegación, estará en el lado izquierdo.

Solo para la información, para colocar el cajón de navegación en el lado derecho, debe cambiar la gravedad del cajón de navegación de la siguiente manera:

<?xml version="1.0" encoding="utf-8"?> <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" android:background="@color/main_background" > <!-- The main content view --> <FrameLayout android:id="@+id/content_frame" android:layout_width="match_parent" android:layout_height="match_parent" > </FrameLayout> <!-- The navigation drawer --> <LinearLayout android:id="@+id/right_drawer" android:layout_width="280dp" android:layout_gravity="end" android:layout_height="match_parent" android:orientation="vertical" /> </android.support.v4.widget.DrawerLayout>

Además, en este caso, realmente desea que el ícono del menú de navegación, a la derecha, use diseños de encabezado personalizados o una biblioteca como ActionBarSherlock para editarlo.

¡Espero que esto ayude!


Si utiliza AppBarLayout y la barra de herramientas, haga lo siguiente.

<android.support.design.widget.AppBarLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:theme="@style/AppTheme.AppBarOverlay" android:layoutDirection="rtl"> <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:background="?attr/colorPrimary" app:popupTheme="@style/AppTheme.PopupOverlay" /> </android.support.design.widget.AppBarLayout>

aviso: android: layoutDirection = "rtl"


Tal vez sea demasiado tarde, pero puede resolverlo utilizando el Menú predeterminado.

Crear res/menu/my_right_side_menu.xml

<menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:myapp="http://schemas.android.com/apk/res-auto"> <item android:id="@+id/btnMyMenu" android:icon="@drawable/ic_drawer" android:title="Right Side Menu" myapp:showAsAction="always"/> </menu>

Luego agregue su menú en onCreateOptionsMenu() en su Activity

@Override public boolean onCreateOptionsMenu(Menu menu) { int menuToUse = R.menu.my_right_side_menu; MenuInflater inflater = getMenuInflater(); inflater.inflate(menuToUse, menu); return super.onCreateOptionsMenu(menu); }

A continuación, en su ActionBarDrawerToggle maneje el evento de clic de su elemento de menú

mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout, R.string.drawer_open, R.string.drawer_close) { @Override public boolean onOptionsItemSelected(android.view.MenuItem item) { if (item != null && item.getItemId() == R.id.btnMyMenu) { if (mDrawerLayout.isDrawerOpen(Gravity.RIGHT)) { mDrawerLayout.closeDrawer(Gravity.RIGHT); } else { mDrawerLayout.openDrawer(Gravity.RIGHT); } return true; } return false; } };

Y, finalmente, no olvides ocultar tu botón de inicio de la ActionBar

getSupportActionBar().setDisplayHomeAsUpEnabled(false); getSupportActionBar().setDisplayShowHomeEnabled(false);


Tienes dos opciones si no quieres tener una barra de herramientas o si no necesitas una barra de herramientas como en mi caso, existe la opción fácil de simplemente agregar un ImageButton en la esquina superior derecha de tu actividad como esta.

<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" android:layout_gravity="right" > <!-- The main content view --> <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content"> <FrameLayout android:id="@+id/content_frame" android:layout_width="match_parent" android:layout_height="match_parent" /> <ImageButton android:id="@+id/account_icon" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_centerVertical="true" android:padding="15dp" android:background="@null" android:src="@drawable/ic_menu_white_24dp" /> </RelativeLayout> <!-- The navigation drawer --> <ListView android:id="@+id/drawer_list" android:layout_width="240dp" android:layout_height="match_parent" android:layout_gravity="right" android:background="#111" android:choiceMode="singleChoice" android:divider="@android:color/transparent" android:dividerHeight="0dp" />

y luego simplemente agregue un detector en él y use drawerLayout.isDrawerOpen () para verificar el estado actual del cajón en una condición normal de if, luego abrir y cerrar el cajón usando drawerLayout.openDrawer ( ) y drawerLayout.closeDrawer (); y para cada uno de los métodos puede pasar si la gravedad o el drawerView en su caso es el ListView, por lo que debería ser algo así como drawer_layout.isDrawerOpen (drawer_list);