2012-11-15 52 views
8

Tôi có một ActionBar với logo, tiêu đề, ba tab và một mục tác vụ.Luôn hiển thị tiêu đề đầy đủ trong ActionBar

Trong chế độ chân dung tất cả mọi thứ có vẻ tốt, vì các tab được chuyển đến ActionBar xếp chồng lên nhau, như thế này: __ _ __ _ __ _ __ _ __ _ __
# tựa đề My                             ¤
_
_ __ _ __ _ __ _ __ _ __ _
Tab 1 | Tab 2 | Tab 3
__ _ __ _ __ _ __ _ __ _ __

Nhưng trong chế độ phong cảnh tiêu đề bị cắt vì các tab được chuyển đến ActionBar hàng đầu, như này: __ _ __ _ __ _ __ _ _ _ _ __ _ __ _ __ _ __
# My ... | Tab 1 | Tab 2 | Tab 3 |   ¤
__ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __

Liệu có cách nào tôi có thể nói ActionBar rằng tiêu đề không bao giờ nên cắt ngắn? Nếu không, tôi có thể ít nhất là thiết lập chiều rộng của tiêu đề? (It is ok cho tôi nếu các tab được chuyển lên một ActionBar xếp chồng lên nhau ngay cả trong chế độ phong cảnh)

EDIT:

Mã yêu cầu.Ở đây là:

public class MyActivity extends SherlockFragmentActivity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    ActionBar actionBar = super.getSupportActionBar(); 
    actionBar.setHomeButtonEnabled(true); 
    actionBar.setDisplayHomeAsUpEnabled(true); 
    actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); 

    actionBar.setTitle("My Long Title"); 

    actionBar.addTab(actionBar 
      .newTab() 
      .setText("Tab 1") 
      .setTabListener(
        new TabListener<MyFragment>(this, "tab1", 
          MyFragment.class, null))); 
    actionBar.addTab(actionBar 
      .newTab() 
      .setText("Tab 2") 
      .setTabListener(
        new TabListener<MyFragment>(this, "tab2", 
          MyFragment.class, null))); 
    actionBar.addTab(actionBar 
      .newTab() 
      .setText("Tab 3") 
      .setTabListener(
        new TabListener<MyFragment>(this, "tab3", 
          MyFragment.class, null))); 
} 
} 
+1

đăng mã/xml của bạn. –

+0

@Anders vui lòng đăng giải pháp. Nếu bạn có một –

Trả lời

0

Tôi nghĩ rằng nếu bạn muốn tiêu đề cố định sau đó trong thư mục trình đơn, bạn sẽ có một file xml như

<menu xmlns:android="http://schemas.android.com/apk/res/android" > 

    <group android:id="@+id/group" > 
     <item 
      android:id="@+id/menu1" 
      android:orderInCategory="100" 
      android:showAsAction="ifRoom" 
      android:title="@string/menu1"/> 

     <item 
      android:id="@+id/Search" 
      android:actionViewClass="android.widget.SearchView" 
      android:icon="@drawable/ic_action_search" 
      android:orderInCategory="100" 
      android:showAsAction="always" 
      android:title="@string/menu3"> 
     </item> 

     <item 
      .............. 
     </item> 

    </group> 

</menu> 

Trong mã ở trên android: showAsAction đóng một quan trọng vai trò.Nếu bạn muốn bất kỳ mục nào sẽ được hiển thị luôn thì bạn nên sử dụng android: showAsAction = "always" .Điều đó chắc chắn sẽ giải quyết được vấn đề của bạn.

Tôi chưa sử dụng SherlockFragmentActivity nhưng tôi nghĩ điều này có thể giúp bạn rất nhiều.

tôi đề nghị bạn để xử lý rằng thông qua tập tin xml của bạn trong thư mục của menu của bạn với việc xử lý sau trong file.Code java của bạn như sau: - Trong onCreate của bạn() thử này: -

setContentView(R.layout.activity_action_bar_eg);//this is the xml file name inside the menu folder 
getActionBar().setHomeButtonEnabled(true); 
getActionBar().setDisplayShowTitleEnabled(false); 
ActionBar bar=getActionBar(); 
bar.show(); 

Với những thay đổi này quá cho giải pháp của vấn đề của bạn

@Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     super.onCreateOptionsMenu(menu); 
     MenuInflater inflater = getMenuInflater(); 
     inflater.inflate(R.menu.activity_action_bar_eg, menu); 
} 
+2

Điều này không thực sự trả lời câu hỏi, phải không? Anh ta không cần thiết phải có Action Button (item). Và nếu tất cả các ActionButton đã được ẩn, và tiêu đề vẫn còn cắt ngắn vì các Tabs? – NLemay

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