java如何在文字旁边加图标_java – 如何向导航抽屉中的项添加图标

我想在我的导航抽屉中的项目旁边放置图标,我已经设置了这样的图标:

Titles = getResources().getStringArray(R.array.array1);

Icons = getResources().getIntArray(R.array.icons);

mDrawerLayout = (DrawerLayout)findViewById(R.id.Welcome);

mDrawerList = (ListView) findViewById(R.id.left_drawer);

mDrawerLayout.setDrawerShadow(R.drawable.drawer_shadow, GravityCompat.START);

mDrawerList.setAdapter( new ArrayAdapter(this, R.layout.drawer_list_item, Titles));

我知道该过程必须涉及将图像视图添加到drawer_list_item的XML中的文本视图,但我不知道如何做到这一点.完成此任务的最佳方法是什么?

这是我的drawer_list_item.xml:

android:id="@android:id/text1"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:textAppearance="?android:attr/textAppearanceListItemSmall"

android:gravity="center_vertical"

android:paddingLeft="16dp"

android:paddingRight="16dp"

android:textColor="#111"

android:background="?android:attr/activatedBackgroundIndicator"

android:minHeight="?android:attr/listPreferredItemHeightSmall"/>

解决方法:

导航抽屉本质上是一个列表视图.使用您想要的任何布局(text imageview)创建drawer_item.xml并将其传递给arrayAdapter.然后在填充listView(在getview方法中)时,将imageView分配给您选择的drawable.

标签:java,android,icons,navigation

来源: https://codeday.me/bug/20190715/1467622.html

DrawerLayout的封装,对于菜单是ListView的应用来说,这个库提供了更直接的使用方式,你不再需要去写menu的布局,如果你对DrawerLayout的使用没有信心,这个库使用起来可能会让你觉得简单些。目地址:https://github.com/Arasthel/GoogleNavigationDrawerMenu效果图:如何使用方法1. 直接用java代码创建   1. 首先你需要创建个内容页的布局文件<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"                 xmlns:tools="http://schemas.android.com/tools"                 android:layout_width="match_parent"                 android:layout_height="match_parent"                 android:paddingLeft="@dimen/activity_horizontal_margin"                 android:paddingRight="@dimen/activity_horizontal_margin"                 android:paddingTop="@dimen/activity_vertical_margin"                 android:paddingBottom="@dimen/activity_vertical_margin"                 tools:context="com.dexafree.googlenavigationdrawermenusample.MainActivity">         <TextView                 android:text="Hello world!"                 android:layout_width="wrap_content"                 android:layout_height="wrap_content" /> </RelativeLayout>   2. 创建菜单实例  mDrawer = new GoogleNavigationDrawer(this);   mDrawer.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));      3. 创建菜单  mDrawer.setListViewSections(new String[]{"Section A", "Section B", "Section C"}, // Main sections         new String[]{"Settings01", "Settings02"}, // Secondary sections         new int[]{R.drawable.ic_launcher}, // Main sections icon ids         null);   4. 设置内容页LayoutInflater inflater = getLayoutInflater(); View contentView = inflater.inflate(R.layout.main_content, null); mDrawer.addView(contentView, 0);  5. 设置选择监听器mDrawer.setOnNavigationSectionSelected(new GoogleNavigationDrawer.OnNavigationSectionSelected() {     @Override     public void onSectionSelected(View v, int i, long l) {           Toast.makeText(getBaseContext(), "Selected section: " i, Toast.LENGTH_SHORT).show();      } });   6. 最后将菜单附到页面上setContentView(mDrawer);  方法2. 在xml创建菜单实例及内容页<org.arasthel.googlenavdrawermenu.views.GoogleNavigationDrawer xmlns:android="http://schemas.android.com/apk/res/android"xmlns:drawer="http://schemas.android.com/apk/res-auto"android:id="@ id/navigation_drawer_container"android:layout_width="match_parent"android:layout_height="match_parent"drawer:list_paddingTop="?android:actionBarSize"drawer:drawer_gravity="start"drawer:list_mainSectionsEntries="@array/navigation_main_sections"drawer:list_secondarySectionsEntries="@array/navigation_secondary_sections"drawer:list_mainSectionsDrawables="@array/drawable_ids"drawer:list_secondarySectionsDrawables="@array/drawable_ids">   <FrameLayout       android:id="@ id/content_layout"       android:layout_width="match_parent"       android:layout_height="match_parent"/> </org.arasthel.googlenavdrawermenu.views.GoogleNavigationDrawer>  接下来就按照方法1的步骤3、步骤5.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值