gpt4 book ai didi

带有圆角的 Android Tab Layout 选项卡

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:08:47 26 4
gpt4 key购买 nike

这类问题之前已经有人问过,但没有得到任何合适的、有效的解决方案,所以我再次发布这个问题。很抱歉再次提问,浪费了你的时间。请给出一些可行的解决方案。或者让我知道我是否做错了什么。提前致谢。

预期标签:On select of Tab it should come like this

但是像这样:

即将到来的标签 Coming Tabs

在页面上,加载选项卡像“预期选项卡”图像一样出现,但在选择之后像“即将出现的选项卡”图像一样出现。MainXML 代码:

 <android.support.design.widget.TabLayout
android:id="@+id/tabs"
style="@style/MyCustomTabLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/background_img_jpeg"
android:minHeight="10dp"
android:padding="10dp"
app:tabGravity="fill"
app:tabIndicatorColor="@color/TRANSPARENT"
app:tabMode="fixed"
app:tabTextColor="@color/blue" />

@style/MyCustomTabLayout

<style name="MyCustomTabLayout" parent="Widget.Design.TabLayout">
<item name="tabBackground">@drawable/tab_bg</item>
</style>

@drawable/tab_bg

<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_selected="true"
android:drawable="@drawable/tab_bgselected" />
<item android:drawable="@drawable/tab_bgnotselected" />
</selector>

@drawable/tab_bgselected

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">

<item android:bottom="0dp" android:top="0dp"
android:left="0dp" android:right="0dp" >
<shape android:shape="rectangle">
<solid android:color="@color/blue" />
<corners
android:topLeftRadius="10dp"
android:bottomLeftRadius="10dp">
</corners>
</shape>
</item>
</layer-list>

像那样@drawable/tab_bgnotselected

在后面的代码中我写了:

tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
@Override
public void onTabSelected(TabLayout.Tab tab) {
try {
mViewPager.setCurrentItem(tab.getPosition());
TabPosition = tab.getPosition();
TabCount = tabLayout.getTabCount();

try {
if (TabPosition == 0) {
GradientDrawable drawable = (GradientDrawable) getResources().getDrawable(R.drawable.policy_tab_blue);
drawable.setCornerRadii(new float[]{10,10,0,0,0,0,10,10}); // this will create the corner radious to left side

} else {
GradientDrawable drawable = (GradientDrawable) getResources().getDrawable(R.drawable.policy_tab_white);
drawable.setCornerRadii(new float[]{0,0,10,10,10,10,0,0}); // this will create the corner radious to right side

}
} catch (Exception e) {
e.printStackTrace();
}
Log.i("TabPosition:--->", TabPosition + "");
Log.i("TabCount:--->", TabCount + "");

} catch (Exception e) {
e.printStackTrace();
}
}

@Override
public void onTabUnselected(TabLayout.Tab tab) {
try {

} catch (Exception e) {
e.printStackTrace();
}
}

@Override
public void onTabReselected(TabLayout.Tab tab) {

}
});

最佳答案

您可以使用 MaterialCardView 和适当的 cardCornerRadius 作为 TabLayout 的父布局来实现这一侧圆角背景。然后您可以使用 tabIndicatorColor 为选项卡选择的布局着色。希望这会帮助你。谢谢

代码 fragment :

<com.google.android.material.card.MaterialCardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
app:strokeWidth="2dp"
app:strokeColor="?attr/colorAccent"
app:cardCornerRadius="20dp">
<com.google.android.material.tabs.TabLayout
app:tabTextAppearance="@android:style/TextAppearance.Widget.TabWidget"
android:id="@+id/tab_layout"
app:tabIndicatorGravity="stretch"
app:tabMaxWidth="0dp"
app:tabGravity="fill"
app:tabMode="fixed"
app:tabIndicatorColor="?attr/colorAccent"
app:tabSelectedTextColor="@android:color/white"
app:tabTextColor="?attr/colorPrimary"
android:layout_width="match_parent"
android:layout_height="35dp"/>
</com.google.android.material.card.MaterialCardView>

输出: enter image description here

关于带有圆角的 Android Tab Layout 选项卡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35337754/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com