Ответ 1
Поместите a TextView
выше a ListView
и заверните его в вертикальный LinearLayout
. Дайте вашим ListView android:layout_weight="1"
и android:layout_height="0dip"
[ОБНОВЛЕНИЕ]
Я решаю проблему, добавляя 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);
================================
Мой вопрос настолько прост!
Я хотел бы добавить заголовок в навигационный ящик?
Я уже создал свой навигационный ящик со списком (значок + текст) для каждого элемента.
Большое спасибо,
Поместите a TextView
выше a ListView
и заверните его в вертикальный LinearLayout
. Дайте вашим ListView android:layout_weight="1"
и android:layout_height="0dip"
Вы сделали бы это так же, как и добавить заголовки в любом другом ListView
, обучив ваш ListAdapter
возвращать строки заголовков, а также строковые строки. На низком уровне это включает в себя следующие методы, такие как getViewTypeCount()
и getItemViewType()
в вашем ListAdapter
, плюс getView()
знать разницу между типами строк. Или используйте существующую высокоуровневую реализацию, например https://github.com/emilsjolander/StickyListHeaders или http://code.google.com/p/android-amazing-listview/, или любую другую найденный при поиске android listview headers
.
Возможно, это немного поздно, но я думаю, что у меня есть более простое решение. В макете активности вместо добавления 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>
И в Управлении вы можете добавить слушателей к кнопкам.
Надеюсь, что это поможет!