繁体   English   中英

Tablayout自定义视图没有采取全高度的android?

[英]Tablayout custom view not taking full height android?

我有一个带有2个标签的tablayout。 我正在使用自定义视图来设置选项卡

Tablayout XML

    <LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <android.support.design.widget.TabLayout
        android:id="@+id/tabs"
        android:layout_width="match_parent"
        android:layout_height="60dp"
        app:tabPaddingBottom="-1dp"
        app:tabPaddingEnd="-1dp"
        app:tabPaddingStart="-1dp"
        app:tabPaddingTop="-1dp"
        app:tabGravity="fill"
        app:tabIndicatorHeight="5dp"
        app:tabMode="fixed" />

    <android.support.v4.view.ViewPager
        android:id="@+id/viewpager"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

</LinearLayout>

自定义视图XML

<?xml version="1.0" encoding="utf-8"?>

<TextView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:andorid="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:textColor="@android:color/white"
andorid:text="XXX" />

选项卡设置的Java代码

private void setupTabIcons() {
    TextView tabOne = (TextView) LayoutInflater.from(getActivity()).inflate(R.layout.tab_text, null);
    tabOne.setBackgroundColor(ContextCompat.getColor(getActivity(),R.color.tabText1));
    tabOne.setText(tabTitle[0]);
    tabLayout.getTabAt(0).setCustomView(tabOne);

    TextView tabTwo = (TextView) LayoutInflater.from(getActivity()).inflate(R.layout.tab_text, null);
    tabTwo.setBackgroundColor(ContextCompat.getColor(getActivity(),R.color.tabText2));
    tabTwo.setText(tabTitle[1]);
    tabLayout.getTabAt(1).setCustomView(tabTwo);
}

这是我的输出 标签没有达到全高

如何将textview的高度与tablayout高度相匹配?

不得不以编程方式做到这一点

ViewGroup.LayoutParams layoutParams = new TableLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);

将参数设置为textview

tabOne.setLayoutParams(layoutParams);

而不是这个尝试这种布局的完整访问布局

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:andorid="http://schemas.android.com/tools"
  android:layout_width="match_parent"
    android:layout_height="match_parent">
    <TextView 

        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:textColor="@android:color/white"
        andorid:text="XXX" />
</RelativeLayout>

尝试使用此..这是我如何自定义我的选项卡

TabLayout tabs = (TabLayout)findviewById(R.id.tabs);

        ViewGroup vg = (ViewGroup) tabs.getChildAt(0);
        int tabsCount = vg.getChildCount();
        for (int j = 0; j < tabsCount; j++) {
            ViewGroup vgTab = (ViewGroup) vg.getChildAt(j);
            int tabChildsCount = vgTab.getChildCount();
            for (int i = 0; i < tabChildsCount; i++) {
                View tabViewChild = vgTab.getChildAt(i);
                // Get TextView Element
                if (tabViewChild instanceof TextView) {
                  // change font
                  ((TextView) tabViewChild).setTypeface(tf);
                  // change color
                  ((TextView) tabViewChild).setTextColor(getResources().getColor(R.color.white));
                  // change size
                  ((TextView) tabViewChild).setTextSize(18);
                  // change padding
                  tabViewChild.setPadding(0, 0, 0, 0);
                  //..... etc...
                }
            }
        }

设置tablayout wrap_content的高度并设置textview height 60dp /

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM