2014-05-13 11 views
7

Tôi có thanh khóa hành động và tôi cần tùy chỉnh điều khiển này làm hình ảnh sau. Tôi cần một mã giả hoặc ví dụ đơn giản tương tự. Tôi đã tải xuống thư viện, ví dụ và tôi đã tìm kiếm trên trang web này và google, nhưng tôi không thể tìm thấy nội dung nào như thế này. Xin lỗi nếu thông tin không đầy đủ, trong trường hợp đó tôi sẽ chỉnh sửa bài đăng với thông tin bạn cần. Cảm ơn.Tùy chỉnh ActionBar trong Android bằng cách sử dụng ActionbarSherlock và jeremyfeinstein slidingmenu

Lưu ý:

  1. Tôi không muốn sử dụng android.support.v4.widget.DrawerLayout, ActionBarDrawerToggle. Tôi cần hiệu ứng trượt sherlock.
  2. Tôi cần một hình ảnh và nhãn trên danh sách các tùy chọn menu (LISTVIEW) (xem hình ảnh bên phải).

enter image description here

Trong tương lai tôi sẽ cần một thanh như dưới đây (phong cách phải tương tự như see this link)

enter image description here

Trả lời

3

Thực hiện "trượt Menu" nó hoàn hảo với Sherlock ActionBar

Thư viện liên kết

https://github.com/jfeinstein10/SlidingMenu

VideoTutorial cho thực hiện hai thư viện

https://www.youtube.com/watch?v=IW6idyV0CZQ

EDIT

//pre-ICS 
if (actionBarSherlock instanceof ActionBarImpl) { 
    enableEmbeddedTabs(actionBarSherlock); 

//ICS and forward 
} else if (actionBarSherlock instanceof ActionBarWrapper) { 
    try { 
     Field actionBarField = actionBarSherlock.getClass().getDeclaredField("mActionBar"); 
     actionBarField.setAccessible(true); 
     enableEmbeddedTabs(actionBarField.get(actionBarSherlock)); 
    } catch (Exception e) { 
     Log.e(TAG, "Error enabling embedded tabs", e); 
    } 
} 

//helper method 
private void enableEmbeddedTabs(Object actionBar) { 
    try { 
     Method setHasEmbeddedTabsMethod = actionBar.getClass().getDeclaredMethod("setHasEmbeddedTabs", boolean.class); 
     setHasEmbeddedTabsMethod.setAccessible(true); 
     setHasEmbeddedTabsMethod.invoke(actionBar, true); 
    } catch (Exception e) { 
     Log.e(TAG, "Error marking actionbar embedded", e); 
    } 
} 

tìm liên kết:

https://groups.google.com/forum/#!topic/actionbarsherlock/hmmB1JqDeCk

Khi bạn đã có các tab trên thanh hành động của bạn, bạn có thể asing một phong cách cho các tab, biên giới, backgroundImage, lực hấp dẫn của bạn và bạn cung cấp cho nút xuất hiện.

Look:

http://www.silverbaytech.com/2013/05/13/themes-for-the-android-actionbar-tabs/

Hãy thử nó và cho chúng tôi biết.

+0

@Gaston F. nó có hoạt động không? xin vui lòng chấp nhận câu trả lời của tôi nếu tôi giúp bạn – Aspicas

+0

cảm ơn các liên kết của bạn, tôi đã thấy thông tin đó, những thư viện và ví dụ mà tôi đã cài đặt nhưng tôi không thể thực hiện screen2 (với khả năng tưởng tượng qua liên kết) và tôi không thể thêm button1 và button2 trên thanh trên cùng (xem hình ảnh cuối cùng). Nếu bạn có một giải pháp, xin vui lòng tôi đánh giá cao sự giúp đỡ. Cảm ơn –

+0

Bạn có muốn các nút như "tab" hoặc chỉ các nút có một biểu tượng không? – Aspicas

7

SidingMenu bố trí:

Bạn nên đặt ListView như bố trí menu.Tiếp theo, tạo sliding_menu_header.xml bố trí với ImageViewTextView bên:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:gravity="center" 
    android:orientation="vertical" > 

    <ImageView 
      android:src="@drawable/image_source" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content"/> 

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

</LinearLayout> 

Bây giờ, bạn có thể thổi phồng bố trí này và thiết lập nó như ListView 's xem tiêu đề: bố trí

View menuHeader = getLayoutInflater().inflate(R.layout.sliding_menu_header, null); 
mListView.addHeaderView(menuHeader); 
mListView.setAdapter(mYourMenuAdapter); 

ActionBar:

Bạn có thể thêm chế độ xem tùy chỉnh vào ActionBar. Trong trường hợp của bạn bố trí có thể như:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:gravity="center" 
    android:orientation="horizontal" > 

    <Button 
      android:id="@+id/button1" 
      android:text="button1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content"/> 

    <Button 
      android:id="@+id/button2" 
      android:text="button2" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content"/> 

</LinearLayout> 

Sau đó thêm bên dưới dòng để phương pháp onCreate của bạn:

ActionBar actionBar = getSupportActionBar(); 
actionBar.setCustomView(R.layout.actionbar_view); 
actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM 
     | ActionBar.DISPLAY_SHOW_HOME); 

Button button1 = actionBar.getCustomView.findViewById(R.id.button1); 
Button button2 = actionBar.getCustomView.findViewById(R.id.button2); 

Hy vọng nó sẽ rất hữu ích cho bạn. Nếu câu trả lời của tôi chưa đầy đủ, hãy bình luận và tôi sẽ cập nhật nó.

1

Từ ảnh của bạn, đường nối bạn cũng muốn cuộn thanh tác vụ. Điều đó là không thể (với kiến ​​thức của tôi). Đối với một cái gì đó như thế để làm việc bạn phải làm cho thanh hành động tùy chỉnh của bạn (như một bố trí bình thường) và xử lý sự thay đổi tầm nhìn và di chuyển của chính mình. Bạn cũng có thể kiểm tra actionbar_compat (appcompat_v7). nếu về cơ bản cung cấp chức năng tương tự như ActionbarSherlock và SlidingMenu kết hợp. http://android-developers.blogspot.ro/2013/08/actionbarcompat-and-io-2013-app-source.html. Và thực đơn có thể chứa những thứ không đồng nhất, nếu đó là mối quan tâm của bạn.

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