Android Design Tablayout custom view unable to match parent
Asked Answered
S

1

8

The custom is always centered in the Tablayout. The tablayout is as below. How to get it the full space available to its parent, i.e. TabView.

<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>

Adding a textview like below

 <?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>

But unfortunately it's always centered and never get the full space. The problem is I can't provide divider between tabs as it's always in center.

Java code for adding tabs:

    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)

I'v shared the image @http://i60.tinypic.com/11cdvyf.jpg

Sylas answered 17/10, 2015 at 5:11 Comment(0)
B
10

Bug is registered here: https://code.google.com/p/android/issues/detail?id=190429

Although you can workaround it by inflating your custom view and then applying layout params manually:

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);
Brogan answered 20/10, 2015 at 11:14 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.