Исходя из вашего описания, вы хотите поменять положение между просмотром текста и значком?Если это так, вы можете создать просмотр списка для достижения этого в NavigationView, как показано в следующем коде.
Это GIF демонстрации.
![enter image description here](https://i.stack.imgur.com/JToHU.gif)
<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:openDrawer="start">
<include
layout="@layout/app_bar_main"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<android.support.design.widget.NavigationView
android:id="@+id/nav_view"
android:layout_width="220dp"
android:scrollbars="none"
android:nestedScrollingEnabled="true"
android:layoutDirection="ltr"
android:layout_height="match_parent"
android:layout_gravity="start"
android:fitsSystemWindows="true"
app:headerLayout="@layout/nav_header_main">
<ListView
android:paddingTop="500px"
android:id="@+id/lst_menu_items"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</android.support.design.widget.NavigationView>
</android.support.v4.widget.DrawerLayout>
ListItem.axml (настроить меню)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/Ls_textview"
android:text="this is text"
android:textSize="15dp"
android:layout_marginRight="5dp"
android:layout_marginLeft="15dp"
android:layout_marginTop="18dp"/>
<ImageView
android:layout_marginLeft="50dp"
android:layout_width="50dp"
android:layout_height="50dp"
android:id="@+id/Ls_ImageView"
android:src="@drawable/lcon"/>
</LinearLayout>
Это метод OnCreate()
.
ListView listView = FindViewById<ListView>(Resource.Id.lst_menu_items);
List<ListItem> listItems = new List<ListItem>();
listItems.Add(new ListItem(Resource.Drawable.lcon, "Title1"));
listItems.Add(new ListItem(Resource.Drawable.lcon, "Title2"));
listItems.Add(new ListItem(Resource.Drawable.lcon, "Title3"));
listItems.Add(new ListItem(Resource.Drawable.lcon, "Title4"));
MyAdapter myAdapter= new MyAdapter(listItems, this);
listView.Adapter = myAdapter;
listView.ItemClick += (s, e) =>
{
OnClick(e.Position);
};
Вы можете обработать событие щелчка, как в следующем коде.
private void OnClick(int position)
{
position++;
if (position == 1)
{
Toast.MakeText(this, $"you click title" + position, ToastLength.Short).Show();
}
else if (position == 2)
{
Toast.MakeText(this, $"you click title" + position, ToastLength.Short).Show();
}
else if (position == 3)
{
Toast.MakeText(this, $"you click title" + position, ToastLength.Short).Show();
}
else if (position == 4)
{
Toast.MakeText(this, $"you click title" + position, ToastLength.Short).Show();
}
DrawerLayout drawer = FindViewById<DrawerLayout>(Resource.Id.drawer_layout);
drawer.CloseDrawer(GravityCompat.Start);
}
Это адаптер списка
public class ListItem {
public ListItem(int ImageSrc, string ItemName)
{
this.ImageSrc = ImageSrc;
this.ItemName = ItemName;
}
public int ImageSrc { get; set; }
public string ItemName { get; set; }
}
public class MyAdapter : BaseAdapter
{
List<ListItem> listItems;
Context context;
public MyAdapter(List<ListItem> listItems, Context context)
{
this.listItems = listItems;
this.context = context;
}
public override int Count => listItems.Count;
public override Java.Lang.Object GetItem(int position)
{
throw new NotImplementedException();
}
public override long GetItemId(int position)
{
return position;
}
public override View GetView(int position, View convertView, ViewGroup parent)
{
convertView = LayoutInflater.From(context).Inflate(Resource.Layout.ListItem, parent, false);
TextView textView = convertView.FindViewById<TextView>(Resource.Id.Ls_textview);
ImageView imageView = convertView.FindViewById<ImageView>(Resource.Id.Ls_ImageView);
//int id=Resource.Drawable.Capture;
textView.Text = listItems[position].ItemName;
imageView.SetImageResource(listItems[position].ImageSrc);
return convertView;
}
}