Ciao Sto usando Android NavigationView. Voglio cambiare la direzione delle icone in RTL anziché LTR come questa:Come modificare la direzione delle icone per le voci di menu in un NavigationView?
Come posso fare questo?
Ciao Sto usando Android NavigationView. Voglio cambiare la direzione delle icone in RTL anziché LTR come questa:Come modificare la direzione delle icone per le voci di menu in un NavigationView?
Come posso fare questo?
cerca di impostare il vostro cassetto di navigazione del layout voce gravità. Esempio:
android:gravity="right"
è possibile utilizzare ListView all'interno del navigationview come quello che ho fatto. Il vantaggio di questo è che si può avere un migliore controllo su questo:
<android.support.design.widget.NavigationView
android:id="@+id/nav_view"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
android:fitsSystemWindows="true"
app:headerLayout="@layout/header"
>
<ListView
android:id="@+id/navigationmenu"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="192dp"
android:background="@android:color/white">
</ListView>
</android.support.design.widget.NavigationView>
e nav voce dovrebbe essere simile a questo:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/cardview_dark_background"
>
<ImageView
android:id="@+id/img"
android:layout_width="wrap_content"
android:layout_alignParentRight="true"
android:layout_height="wrap_content"
android:src="@drawable/viewlist"
/>
<TextView
android:id="@+id/tvlstName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="20dp"
android:layout_marginRight="30dp"
android:textColor="@color/colorPrimary"
/>
</RelativeLayout>
e navcustomadapter come questo:
package com.example.android.dezcook;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
/**
* Created by Android on 6/4/2016.
*/
public class navCustomAdapter extends BaseAdapter {
String[] result;
Context context;
int[] imageId;
private static LayoutInflater inflater=null;
public navCustomAdapter(MainActivity mainActivity,String[] prgmNameList,int[] prgImages)
{
result=prgmNameList;
imageId=prgImages;
context =mainActivity;
inflater =(LayoutInflater) context.getSystemService(context.LAYOUT_INFLATER_SERVICE);
}
@Override
public int getCount()
{
return result.length;
}
@Override
public Object getItem(int position)
{
return position;
}
@Override
public long getItemId(int position)
{
return position;
}
public class Holder
{
TextView tv;
ImageView img;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent)
{
Holder holder=new Holder();
View rowView;
rowView=inflater.inflate(R.layout.navitem,null);
holder.tv=(TextView)rowView.findViewById(R.id.tvlstName);
holder.img=(ImageView)rowView.findViewById(R.id.img);
holder.tv.setText(result[position]);
holder.img.setImageResource(imageId[position]);
rowView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(context,"you Clicked "+result[position],Toast.LENGTH_LONG).show();
}
}
);
return rowView;
}
}
finalmente chiamano in attività principale come questa:
ListView lv=(ListView)findViewById(R.id.navigationmenu);
lv.setAdapter(new navCustomAdapter(this,navItem,prgmImages)
provi questo? http://stackoverflow.com/questions/30613799/how-to-position-menu-items-in-navigation-view – itzhar
C'è una soluzione alternativa per gli elementi RTL se si utilizza la libreria https://github.com/mikepenz/MaterialDrawer. Non sono riuscito a trovare la correzione per NavigationView. –