2013-05-16 47 views
7

Hiện tại tôi đang bận trên một ứng dụng WHMCS cho công ty của mình. Khi điều hướng, tôi muốn sử dụng chức năng Tab trong thanh tác vụ.Chiều rộng của thanh tác vụ Android cho các tab

Tuy nhiên, làm cách nào bạn có thể chỉnh sửa chiều rộng của tab? Tôi cần 5 cùng nhau trên một màn hình mà không cần phải cuộn. Tôi đã thử nó với một số phong cách như thế này:

<style name="AppBaseTheme" parent="android:Theme.Light"> 
</style> 

<style name="AppTheme" parent="AppBaseTheme"> 
    <item name="@android:attr/actionBarTabStyle">@style/tab_nav</item> 
    <item name="android:actionBarTabTextStyle">@style/actionBarTabTextStyle</item> 
</style> 

<style name="actionBarTabTextStyle" parent="android:Widget.Holo.Light.ActionBar.TabText.Inverse"> 
    <item name="android:padding">1dp</item> 
</style> 

<style name="tab_nav" parent="android:style/Widget.Holo.Light.Tab"> 
<item name="android:paddingLeft">-25dp</item> 
</style> 

<style name="CustomTabTextStyle" parent="@android:style/TextAppearance.Holo"> 
    <item name="android:textColor">#2456c2</item> 
</style> 

Tuy nhiên, chiều rộng sẽ không tôm khi sử dụng một giá trị âm cao hơn.

+0

Xin chào các bạn, bạn đã giải quyết được vấn đề của mình chưa? Xin vui lòng gửi giải pháp vì tôi có cùng một vấn đề. Cảm ơn –

Trả lời

3

Hi tôi nghĩ rằng điều này có thể giúp bạn ... Mã này được thực sự làm cho actionbar ràng buộc với chiều rộng màn hình, vì vậy các tab sẽ điều chỉnh tự =)

private void setTabsMaxWidth() { 
    DisplayMetrics displaymetrics = new DisplayMetrics(); 
    getWindowManager().getDefaultDisplay().getMetrics(displaymetrics); 
    int screenWidth = displaymetrics.widthPixels; 
    final ActionBar actionBar = getActionBar(); 
    final View tabView = actionBar.getTabAt(0).getCustomView(); 
    final View tabContainerView = (View) tabView.getParent(); 
    final int tabPadding = tabContainerView.getPaddingLeft() + tabContainerView.getPaddingRight(); 
    final int tabs = actionBar.getTabCount(); 
    for(int i=0 ; i < tabs ; i++) { 
     View tab = actionBar.getTabAt(i).getCustomView(); 
     TextView text1 = (TextView) tab.findViewById(R.id.text1); 
     text1.setMaxWidth(screenWidth/tabs-tabPadding-1); 
    } 
} 
+0

Tính năng này hoạt động, kết hợp với [this] (http://stackoverflow.com/questions/20039817/change-tab-width-in-actionbar-tab) để làm cho các tab hiển thị cùng một lúc (tôi có 6), nhưng tôi không thể tìm ra cách để loại bỏ phần đệm thừa trong thời gian ngắn mà tôi đã sử dụng để biểu tượng của tôi khá nhỏ. – craned

0

Nếu bạn cần "5 với nhau trên một màn hình mà không cần cuộn "sử dụng tốt hơn TabHost ở đầu bố cục của bạn.

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