【发布时间】:2016-06-01 16:54:48
【问题描述】:
我正在尝试使用一些自定义布局填充导航抽屉。该布局的 XML 文件如下:
<android.support.v4.widget.DrawerLayout
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@+id/toolbar">
<!-- The main content view -->
<FrameLayout
android:id="@+id/content_frame"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clickable="true">
</FrameLayout>
<!-- The navigation drawer -->
<LinearLayout
android:orientation="vertical"
android:id="@+id/left_drawer"
android:layout_width="240dp"
android:layout_height="match_parent"
android:layout_gravity="start"
android:divider="@android:color/transparent"
android:dividerHeight="0dp"
android:background="#FFFFFF">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_marginLeft="40px"
android:layout_marginTop="40px">
<ImageView
android:id="@+id/imgUser"
android:src="@drawable/empty_profile"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="20px"
android:layout_marginTop="20px">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="15sp"
android:text="Waqas Ahmed Ansari"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="63km"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Joined: Feb '16"/>
</LinearLayout>
</LinearLayout>
<ListView
android:id="@+id/lstDrawerItems"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:choiceMode="singleChoice"
android:layout_marginTop="20sp" />
</LinearLayout>
</android.support.v4.widget.DrawerLayout>
然后我为 ListView lstDrawerItems 创建了一个 CustomAdapter 类
在这里。
public class CustomAdapter extends BaseAdapter {
public ArrayList<HashMap<String, String>> list;
Activity activity;
TextView txtFirst;
ImageView imgView;
public CustomAdapter(Activity activity, ArrayList<HashMap<String, String>> list) {
super();
this.activity=activity;
this.list=list;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
LayoutInflater inflater=activity.getLayoutInflater();
if(convertView == null){
convertView = inflater.inflate(R.layout.custom_drawer_list, null);
txtFirst = (TextView) convertView.findViewById(R.id.drawer_itemName);
imgView = (ImageView) convertView.findViewById((R.id.drawer_icon));
}
HashMap<String, String> map=list.get(position);
txtFirst.setText(map.get("name"));
imgView.setImageResource(Integer.parseInt(map.get("imgDrawerIcon")));
return convertView;
}
@Override
public int getCount() {
return 0;
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
}
当我设置列表适配器时,我什么都看不到。
我在这里设置了自定义适配器。
CustomAdapter adapter = new CustomAdapter(HomeNoVehicle.this, list);
ListView drawerList = (ListView) findViewById(R.id.lstDrawerItems);
drawerList.setAdapter(adapter);
【问题讨论】:
-
到目前为止,您尝试过(但都失败了)什么样的方法?另外,您是否只是想在每个项目中创建一个包含图片和文本的列表视图?
-
我已经制作了 CustomAdapter 类,膨胀自定义列表视图。以不同的方式尝试了这种方法。是的,我正在尝试使用图片和文本制作列表视图,但导航抽屉带有自定义视图
-
尝试在您的 BaseAdapter 中实现
getCount(),适配器使用它来了解您的数据大小,如果您将其设置为 0,它将永远不会打印您的列表。您可以参考我下面的代码,了解如何以基本的方式实现基础适配器的所有功能。 -
应该是
return list.size(); -
多么愚蠢的错误!非常感谢您,先生。
标签: android xml navigation-drawer material-design custom-lists