Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發 >> 關於android開發 >> 將Tab欄居中的方法,Tab欄居中方法

將Tab欄居中的方法,Tab欄居中方法

編輯:關於android開發

將Tab欄居中的方法,Tab欄居中方法


原始tab:

居中後的tab(邊緣效果是截圖的問題):

改變方法如下:

找到Android SlidingTabLayout源代碼,在Android SlidingTabLayout源代碼中有一個方法:
private void populateTabStrip();

 1 private void populateTabStrip() {
 2         final PagerAdapter adapter = mViewPager.getAdapter();
 3         final View.OnClickListener tabClickListener = new TabClickListener();
 4 
 5         for (int i = 0; i < adapter.getCount(); i++) {
 6             View tabView = null;
 7             TextView tabTitleView = null;
 8 
 9             if (mTabViewLayoutId != 0) {
10                 // If there is a custom tab view layout id set, try and inflate
11                 // it
12                 tabView = LayoutInflater.from(getContext()).inflate(mTabViewLayoutId, mTabStrip, false);
13                 tabTitleView = (TextView) tabView.findViewById(mTabViewTextViewId);
14             }
15 
16             if (tabView == null) {
17                 tabView = createDefaultTabView(getContext());
18             }
19 
20             if (tabTitleView == null && TextView.class.isInstance(tabView)) {
21                 tabTitleView = (TextView) tabView;
22             }
23 
24             tabTitleView.setText(adapter.getPageTitle(i));
25             tabView.setOnClickListener(tabClickListener);
26             
27             mTabStrip.addView(tabView);
28         }
29     }

這是谷歌官方實現的Android SlidingTabLayout添加底部選項卡Tab的代碼,如果為了實現前文所述的將Tab均分水平位置空間,則需要修改此方法,在此方法中添加如下代碼:

1 LinearLayout.LayoutParams layoutParams= new LinearLayout.LayoutParams(0, LayoutParams.WRAP_CONTENT, 1.0f);
2             tabView.setLayoutParams(layoutParams);

這兩段代碼將tab view水平均分放置。

最終將private void populateTabStrip()改進成這樣:

 1 private void populateTabStrip() {
 2         final PagerAdapter adapter = mViewPager.getAdapter();
 3         final View.OnClickListener tabClickListener = new TabClickListener();
 4 
 5         for (int i = 0; i < adapter.getCount(); i++) {
 6             View tabView = null;
 7             TextView tabTitleView = null;
 8 
 9             if (mTabViewLayoutId != 0) {
10                 // If there is a custom tab view layout id set, try and inflate
11                 // it
12                 tabView = LayoutInflater.from(getContext()).inflate(mTabViewLayoutId, mTabStrip, false);
13                 tabTitleView = (TextView) tabView.findViewById(mTabViewTextViewId);
14             }
15 
16             if (tabView == null) {
17                 tabView = createDefaultTabView(getContext());
18             }
19 
20             if (tabTitleView == null && TextView.class.isInstance(tabView)) {
21                 tabTitleView = (TextView) tabView;
22             }
23 
24             tabTitleView.setText(adapter.getPageTitle(i));
25             tabView.setOnClickListener(tabClickListener);
26 
27             //添加
28             LinearLayout.LayoutParams layoutParams= new LinearLayout.LayoutParams(0, LayoutParams.WRAP_CONTENT, 1.0f);
29             tabView.setLayoutParams(layoutParams);
30             //添加
31             
32             mTabStrip.addView(tabView);
33         }
34     }

 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved