【问题标题】:How to add Customized ListView inside navigation drawer? Different views in each row如何在导航抽屉内添加自定义列表视图?每行中的不同视图
【发布时间】:2014-05-01 20:38:19
【问题描述】:

您好,我是 Android 开发新手,我必须创建一个带有不同项目的导航抽屉。

第一行应该包含一个

按钮

。接下来的三行应该包含

TexViews

,最后一行应该包含一个

编辑文本

我已经创建了布局,但我不知道如何在适配器内部调用它。

【问题讨论】:

  • 为什么要为此使用 ListView?
  • 因为我是 android 新手,而且我还不知道其他方式。

标签: android listview drawer


【解决方案1】:

导航抽屉不仅限于 ListView。也许这就是你想选择一个的原因。您可以使用任何视图/视图组来构建您的抽屉。尝试使用您选择的一些子视图的 LinearLayout。像这样的:

<LinearLayout
    android:id="@+id/drawer_view"
    android:layout_width="240dp"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:layout_gravity="start">

    <Button
        .../>
    <TextView
        .../>

</LinearLayout>

这只是一个例子,表明你不必坚持使用 ListView 作为你的 Drawer。

【讨论】:

    【解决方案2】:

    getView 中,您需要检查getItem(position) 中的项目是什么类型,并在此基础上扩展正确的布局。

    @Override
    public View getView(int position, View convertView, ViewGroup parent)
    {
        NavDrawerItem item = getItem(position);
        if (item.getType() == BUTTON_ITEM_TYPE)
        {
            convertView = inflater.inflate(R.layout.navdrawer_button, parent, false);
            //get references to individual views, etc.
        }
    }
    

    带有类似物品的界面

    public interface NavDrawerItem
    {
        public static final int BUTTON_ITEM_TYPE = 1;
        public static final int TEXTVIEW_ITEM_TYPE = 2;
    
        public int getId();
    
        public String getLabel();
    
        public int getType();
    }
    

    【讨论】:

      猜你喜欢
      • 2016-06-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多