gpt4 book ai didi

java - 带图标的抽屉导航 ListAdapter

转载 作者:行者123 更新时间:2023-12-01 11:15:15 26 4
gpt4 key购买 nike

我刚刚开始开发 Android,但遇到了问题。我有一个 DrawerNavigationListAdapter 和一个 DrawerNavigationListView,并且工作正常,现在我尝试向其中添加相应的图标。

这是我的 xml:

<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="match_parent"
android:layout_width="match_parent" >

<ImageView
android:id="@+id/icon"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:padding="8dp" />

<TextView
android:id="@+id/title"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="8dp"
android:textSize="18sp"
android:background="@drawable/navigation_list_selector" />

</RelativeLayout>

DrawerNavigationListView.java

public class DrawerNavigationListView extends ListView implements AdapterView.OnItemClickListener {
public DrawerNavigationListView(Context context) {
this(context, null);
}

public DrawerNavigationListView(Context context, AttributeSet attrs) {
this(context, attrs, 0);
}

public DrawerNavigationListView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);

DrawerNavigationListAdapter adapter = new DrawerNavigationListAdapter( getContext(), 1 );
adapter.add(getContext().getString(R.string.section_0));
...
setAdapter( adapter );

setOnItemClickListener( this );
}

@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
EventBus.getInstance().post(new DrawerSectionItemClickedEvent((String) parent.getItemAtPosition(position)));
}
}

和 DrawerNavigationListAdapter

public class DrawerNavigationListAdapter extends ArrayAdapter<String> {

public DrawerNavigationListAdapter(Context context, int resource) {
super(context, resource);
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if( convertView == null ) {
holder = new ViewHolder();
convertView = LayoutInflater.from(getContext()).inflate( R.layout.navigation_drawer_list_item, parent, false );
holder.title = (TextView) convertView.findViewById( R.id.title );
holder.icon = (ImageView) convertView.findViewById(R.id.icon);
convertView.setTag( holder );
} else {
holder = (ViewHolder) convertView.getTag();
}

holder.title.setText(getItem(position));

return convertView;
}

class ViewHolder {
TextView title;
ImageView icon;
}
}

我的问题是,如何更改此代码以便添加图标?

最佳答案

在RelativeLayouts中,除非另有说明,否则在其他 View 之后列出的 View 将以更高的z索引绘制。所以你的 TextView 有效地绘制在你的 ImageView 上。您需要使用

android:layout_toRightOf="ImageView" //or layout_toLeftOf

在 TextView 的 xml 中或使用

android:drawableLeft="ImageView" //or drawableRight

后者是我向适配器中的 TextView 添加图标的方法,但两者都有效。

关于java - 带图标的抽屉导航 ListAdapter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31909582/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com