2013-06-05 40 views
25

[UPDATE]Cách thêm tiêu đề trong bố cục ngăn điều hướng?

tôi giải quyết vấn đề bằng cách thêm 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); 

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

Câu hỏi của tôi rất đơn giản!

Tôi muốn cách thêm tiêu đề vào ngăn điều hướng?

Tôi đã tạo ngăn điều hướng của mình với chế độ xem danh sách (biểu tượng + văn bản) cho mỗi mục.

Thanks a lot,

enter image description here

+0

Bạn có bất kỳ ý tưởng nào về cách thêm một số tiêu đề không? –

+0

Bạn có mẫu mã hoàn chỉnh hơn không? – karlstackoverflow

+0

Giải pháp tuyệt vời !!! Cảm ơn bạn. –

Trả lời

5

Đặt một TextView trên một ListView, và quấn nó bên trong một dọc LinearLayout. Cho đến ListView bạn android:layout_weight="1"android:layout_height="0dip"

+0

Điều đó sẽ hoạt động nếu tiêu đề được cố định ở trên cùng. Ảnh chụp màn hình hiển thị tiêu đề như một phần của chính 'ListView' (xem dòng" Tiêu đề 2 "). Tuy nhiên, giải pháp của bạn có thể là những gì OP đang tìm kiếm. – CommonsWare

+0

Có, tôi hiểu lầm anh ta. Chỉ bây giờ tôi mới nhận ra anh ấy muốn – Blackbelt

+0

Cảm ơn, tôi đã chỉnh sửa bài đăng. Vấn đề được giải quyết – wawanopoulos

11

Bạn sẽ làm điều đó theo cùng một cách như bạn sẽ thêm các đề mục trong bất kỳ ListView khác, bằng cách dạy ListAdapter của bạn để trả lại hàng tiêu đề cũng như hàng chi tiết. Ở cấp độ thấp, điều này bao gồm các phương pháp ghi đè như getViewTypeCount()getItemViewType() trong số ListAdapter của bạn, cộng với việc có getView() biết sự khác biệt giữa các loại hàng. Hoặc, sử dụng triển khai cấp cao hiện tại như https://github.com/emilsjolander/StickyListHeaders hoặc http://code.google.com/p/android-amazing-listview/ hoặc bất kỳ người nào khác được tìm thấy khi tìm kiếm android listview headers.

+0

Cảm ơn, tôi đã chỉnh sửa bài viết. Sự cố đã được giải quyết – wawanopoulos

+0

bài đăng liên quan - http://stackoverflow.com/questions/13590627/android-listview-headers –

0

Có thể hơi muộn nhưng tôi nghĩ tôi có giải pháp đơn giản hơn. Trong bố cục Hoạt động của bạn, thay vì thêm một listView bên trong DrawerLayout, bạn có thể thêm ví dụ một LinearLayout, và bạn có thể dễ dàng thêm các dấu tách và các hàng. Ví dụ:

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

Và trong hoạt động, bạn có thể thêm các thính giả tới các nút.

Hy vọng điều đó sẽ hữu ích!

Các vấn đề liên quan