web-dev-qa-db-ja.com

ナビゲーションドロワーレイアウトにタイトルを追加する方法

[更新]

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

25
wawanopoulos

TextViewListViewの上に置き、垂直線LinearLayoutで囲みます。リストビューに与えるAndroid:layout_weight="1"およびAndroid:layout_height="0dip"

5
Blackbelt

他のListViewに見出しを追加するのと同じ方法で、ListAdapterに見出し行と詳細行を返すように指示します。低レベルでは、これにはListAdapter内のgetViewTypeCount()getItemViewType()などのメソッドをオーバーライドすることに加えて、getView()に行タイプの違いを認識させる必要があります。 。または、 https://github.com/emilsjolander/StickyListHeaders または http://code.google.com/p/Android-amazing-listviewのような既存の高レベルの実装を使用します/ またはAndroid listview headersを検索したときに見つかった他のいずれか。

11
CommonsWare

少し遅いかもしれませんが、もっと簡単な解決策があると思います。アクティビティのレイアウトでは、DrawerLayout内にlistViewを追加する代わりに、たとえば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>

また、アクティビティでは、ボタンにリスナーを追加できます。

お役に立てば幸いです。

0
Racker