NavigationDrawer with" special"列表显示

时间:2015-04-29 07:13:21

标签: android listview android-listview navigation-drawer

目前我正在使用标准的NavigationDrawer,它使用listview来显示项目。

但是有一个问题:此列表视图中的最后两个项目需要位于屏幕的底部,而其他项目位于顶部。看起来应该是这样的:

| item 1 |

| item 2 |

| item 3 |

| item 4 |

| item 5 |

-space -

-space -

-space -

| item 6 |

| item 7 |

我在考虑2个列表视图,但是小屏幕和滚动会出现问题。然后我考虑不使用listview,而是将每个项目分别放在那里(可能在ScrollView中使用LinearLayotu),不确定这是否是最佳方式。

有没有一种优雅的方法来实现这个目标?

1 个答案:

答案 0 :(得分:0)

ListView将是一个不错的选择

试试这个

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {
    mDrawerListView = (ListView) inflater.inflate(R.layout.fragment_navigation_drawer, container, false);
    mDrawerListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                @Override
                public void onItemClick(AdapterView<?> parent, View view,
                        int position, long id) {
                    selectItem(position);
                }
            });
    mDrawerListView.setAdapter(new ArrayAdapter<String>(getActionBar()
            .getThemedContext(), android.R.layout.simple_list_item_1,
            android.R.id.text1, new String[] {
                    getString(R.string.title_section1),
                    getString(R.string.title_section2),
                    getString(R.string.title_section3),
                    getString(R.string.title_section4),
                    getString(R.string.title_section5),
                    getString(R.string.title_section6),
                    getString(R.string.title_section7), 
                    getString(R.string.title_section8), 
                    getString(R.string.title_section9), 
                    getString(R.string.title_section10),
                    getString(R.string.title_section11),
                    getString(R.string.title_section12),
                    getString(R.string.title_section13),
                    getString(R.string.title_section14),
    }));

    mDrawerListView.setItemChecked(mCurrentSelectedPosition, true);
    return mDrawerListView;
}

activity_main XML:

<fragment
    android:id="@+id/navigation_drawer"
    android:name="com.example.demoapp.NavigationDrawerFragment"
    android:layout_width="@dimen/navigation_drawer_width"
    android:layout_height="match_parent"
    android:layout_gravity="start"
    tools:layout="@layout/fragment_navigation_drawer" />

fragment_navigation_drawer.xml

<LinearLayout 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:orientation="vertical" >

<ListView
    android:layout_width="match_parent"
    android:layout_height="232dp"
    android:layout_weight="1"
    android:background="#fff"
    android:choiceMode="singleChoice"
    android:divider="@android:color/transparent"
    android:dividerHeight="0dp"
    tools:context="com.example.demoapp.NavigationDrawerFragment" />


<Button
    android:id="@+id/button1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:text="Button" />

图片:

enter image description here

enter image description here