2013-06-05 14 views
25

[UPDATE]ナビゲーション引き出しレイアウトにタイトルを追加するには?

Iは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

+0

複数のタイトルを追加する方法はありますか? –

+0

より完全なコードサンプルがありますか? – karlstackoverflow

+0

素晴らしい解決策!!!ありがとうございました。 –

答えて

5

ListView上記TextViewを入れており、縦LinearLayout内側にラップします。あなたは、行だけでなく、詳細行を見出し返すために、あなたのListAdapterを教えることで、他のどのListViewに見出しを追加するのと同じ方法であることをするだろうあなたのListView android:layout_weight="1"android:layout_height="0dip"

+0

ヘッダーが上部に固定されている場合は、これが機能します。スクリーンショットは、ヘッダを 'ListView'自体の一部として表示します(「タイトル2」の行を参照)。あなたのソリューションは、OPが求めているものかもしれません。 – CommonsWare

+0

はい、私は彼を誤解しました。今は彼が望んでいることがわかった – Blackbelt

+0

ありがとう、私は投稿を編集しました。問題を解決しました – wawanopoulos

11

に与えます。低レベルでは、これはにgetViewTypeCount()getItemViewType()のようなメソッドをオーバーライドし、さらにgetView()に行のタイプの違いが分かっています。または、​​またはhttp://code.google.com/p/android-amazing-listview/などの既存の高レベル実装、またはandroid listview headersを検索するときに見つかったその他の実装を使用します。

+0

ありがとう、私は投稿を編集しました。問題を解決しました – wawanopoulos

+0

関連post - http://stackoverflow.com/questions/13590627/android-listview-headers –

0

多少遅れたかもしれませんが、私はもっと簡単な解決方法があると思います。アクティビティのレイアウトでは、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> 

そしてアクティビティでは、ボタンにリスナーを追加することができます。

希望に役立ちます!

関連する問題