2015-06-28 113 views
9

嗨,我正在使用android NavigationView。我想將圖標方向更改爲RTL而不是像這樣的LTR:如何更改NavigationView中菜單項的圖標方向?

我該怎麼做?

Example image

+0

你試試這個工作? http://stackoverflow.com/questions/30613799/how-to-position-menu-items-in-navigation-view – itzhar

+0

如果您使用https://github.com/mikepenz/MaterialDrawer庫,則可以使用RTL項目的解決方法。我無法找到NavigationView的修復程序。 –

回答

-1

嘗試設置您的導航抽屜項目佈局重心。例如:

android:gravity="right" 
-2

只是將android:supportsRtl="true"屬性添加到清單文件中的元素。

欲瞭解更多信息檢查:here

+0

此解決方案僅適用於API17 +。 – Hafez

3

您可以使用列表視圖navigationview裏面就像我所做的。這樣做的好處是,你可以在此更好的控制:

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

和導航項目應該是這樣的:

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

和navcustomadapter這樣的:

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

} 

最後調用它在這樣的主要活動:

ListView lv=(ListView)findViewById(R.id.navigationmenu); 
     lv.setAdapter(new navCustomAdapter(this,navItem,prgmImages) 
1

只是想出來!

嘗試在佈局文件中將這些屬性添加到NavigationView

android:layoutDirection="rtl" 
android:textDirection="rtl" 

截圖

enter image description here

注:看來其對API 17和更高

相關問題