使用MvvmCross将图标添加到TabLayout

nhenrique

我一直在看MvvmCross上的Playground项目(https://github.com/MvvmCross/MvvmCross/tree/develop/Projects/Playground

将片段加载到选项卡中的方法是通过以下方式设置属性:

[MvxTabLayoutPresentation(TabLayoutResourceId = Resource.Id.tabs, ViewPagerResourceId = Resource.Id.viewpager, Title = "Tab 1", ActivityHostViewModelType = typeof(TabsRootViewModel))]
[MvxTabLayoutPresentation(TabLayoutResourceId = Resource.Id.tabs, ViewPagerResourceId = Resource.Id.viewpager, Title = "Tab 1", FragmentHostViewType = typeof(TabsRootBView))]
[Register(nameof(Tab1View))]
public class Tab1View : MvxFragment<Tab1ViewModel>

我的问题是,除了可以在MvxTabLayoutPresentation上指定的标题外,如何向每个选项卡添加图标?

豆蔻

这不是现成可用的,而是更多关于TabLayout自定义的。

您可以这样实现。

为您的标签布局项创建CustomView myCustomTab.axml

<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/txtTab"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:gravity="center_horizontal"
    android:textColor="#FFFFFF"
    android:textSize="12"
    android:textStyle="bold" />

然后,在具有的视图中,TabLayout您可以在OnCreate/上进行配置OnCreateView

var tabLayout = view.FindViewById<TabLayout>(Resource.Id.tabs);
var customTab = inflater.Inflate(Resource.Layout.myCustomTab, null);
customTab.Text = "MyText";
// this sets the icon above the text
customTab.SetCompoundDrawablesWithIntrinsicBounds(0, Resource.Drawable.my_icon, 0, 0);
tabLayout.GetTabAt(0).SetCustomView(customTab);

显然,您必须执行的次数与选项卡布局项目的次数相同。

此外,使用此功能,您可以将任何自定义项添加到选项卡布局项。

来源(使用Java):https//mobikul.com/make-custom-tabs-icons-android/

HIH

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章