Подтвердить что ты не робот

Как добавить заголовок в макет навигационного ящика?

[ОБНОВЛЕНИЕ]

Я решаю проблему, добавляя addHeaderView:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    mTitle = mDrawerTitle = getTitle();
    mPlanetTitles = getResources().getStringArray(R.array.planets_array);
    mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
    mDrawerList = (ListView) findViewById(R.id.left_drawer);

    LayoutInflater inflater = getLayoutInflater();
    ViewGroup mTop = (ViewGroup)inflater.inflate(R.layout.header_listview_menu, mDrawerList, false);
    mDrawerList.addHeaderView(mTop, null, false);

================================

Мой вопрос настолько прост!

Я хотел бы добавить заголовок в навигационный ящик?

Я уже создал свой навигационный ящик со списком (значок + текст) для каждого элемента.

Большое спасибо,

enter image description here

4b9b3361

Ответ 1

Поместите a TextView выше a ListView и заверните его в вертикальный LinearLayout. Дайте вашим ListView android:layout_weight="1" и android:layout_height="0dip"

Ответ 2

Вы сделали бы это так же, как и добавить заголовки в любом другом ListView, обучив ваш ListAdapter возвращать строки заголовков, а также строковые строки. На низком уровне это включает в себя следующие методы, такие как getViewTypeCount() и getItemViewType() в вашем ListAdapter, плюс getView() знать разницу между типами строк. Или используйте существующую высокоуровневую реализацию, например https://github.com/emilsjolander/StickyListHeaders или http://code.google.com/p/android-amazing-listview/, или любую другую найденный при поиске android listview headers.

Ответ 3

Возможно, это немного поздно, но я думаю, что у меня есть более простое решение. В макете активности вместо добавления listView внутри DrawerLayout вы можете добавить, например, LinearLayout, и вы можете легко добавить разделители и строки. Например:

<RelativeLayout 
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <LinearLayout
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <com.astuetz.viewpager.extensions.PagerSlidingTabStrip
            android:id="@+id/indicator"
            android:layout_height="48dip"
            android:layout_width="fill_parent"/>

        <ViewPager
            android:id="@+id/pager"
            android:layout_width="fill_parent"
            android:layout_height="0dp"
            android:layout_weight="1"/>

    </LinearLayout>

</RelativeLayout>

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

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Separator 1"/>

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="First button"/>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Separator 2"/>

</LinearLayout>

И в Управлении вы можете добавить слушателей к кнопкам.

Надеюсь, что это поможет!