2015-10-17 78 views
5

自定義始終以Tablayout爲中心。這個tablayout如下。 如何獲得它的父級可用的全部空間,即TabView。Android設計Tablayout自定義視圖無法匹配父項

<android.support.design.widget.TabLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:id="@+id/tablayout" 
    android:layout_width="match_parent" 
    app:tabPaddingStart="0dp" 
    app:tabPaddingEnd="0dp" 
    android:layout_height="90dp"> 
</android.support.design.widget.TabLayout> 

添加像下面

<?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:background="@android:color/holo_purple" 
    android:gravity="center_horizontal"> 

<TextView 
    android:text="Hello !" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"/> 
</LinearLayout> 

但不幸的是它始終圍繞和從來沒有得到充分的空間一個TextView。問題是我無法在選項卡之間提供分隔符,因爲它始終處於中心位置。

添加標籤

Java代碼:

TabLayout v = (TabLayout)findViewById(R.id.tablayout); 
    TabLayout.Tab tab = v.newTab(); 
    tab.setCustomView(R.layout.content_main); 
    v.addTab(tab); 
    tab = v.newTab(); 
    tab.setCustomView(R.layout.content_main); 
    v.addTab(tab); 
    tab = v.newTab(); 
    tab.setCustomView(R.layout.content_main); 
    v.addTab(tab) 

心中已經共享圖像@http://i60.tinypic.com/11cdvyf.jpg

回答

7

錯誤在這裏註冊: https://code.google.com/p/android/issues/detail?id=190429

儘管可以通過充氣自定義視圖變通辦法然後手動應用佈局參數:

View v = LayoutInflater.from(this).inflate(R.layout.view_goal_tab_active, null); 
TextView tv = (TextView)v.findViewById(R.id.goal_tab_active_tv); 
tv.setSelected(true); 
v.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT)); 
mTabs.getTabAt(0).setCustomView(v);