Xamarin Android TabLayout徽章:绑定文本Mvvmcross

沃西克

我做了一个自定义布局,将徽章添加到Android的标签上。此徽章是TextView。如何绑定此组件?这是可能的?

我的自定义徽章布局:

 <LinearLayout
        android:id="@+id/badgeCotainer"
        android:layout_width="wrap_content"
        android:layout_height="20dp"
        android:layout_marginStart="90dp"
        android:background="@drawable/notifications_background"
        android:gravity="center"
        android:layout_gravity="right"
        android:minWidth="16dp">

        <TextView
            android:id="@+id/badge"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAlignment="center"
            android:textColor="#011f7a"
            android:textSize="10sp" 
            android:text="0"
            app:MvxBind="Text ContMaterial"/>
</LinearLayout>

我的活动:使用MvxViewPagerFragmentInfo

private void InitTabs()
        {
            var viewPager = FindViewById<ViewPager>(Resource.Id.materiais_viewpager);
            if (viewPager != null)
            {
                var fragments = new List<MvxViewPagerFragmentInfo>
                {
                    new MvxViewPagerFragmentInfo("Requisição",
                        typeof(CadastraRequisicaoFragment), ViewModel),
                    new MvxViewPagerFragmentInfo("Materiais",
                        typeof(ListaMateriaisFragment), ViewModel),
                };


                viewPager.Adapter = new MvxCachingFragmentStatePagerAdapter(this, SupportFragmentManager, fragments);
            }

            var tabLayout = FindViewById<TabLayout>(Resource.Id.requisicao_tabs);
            tabLayout.SetupWithViewPager(viewPager);
             tabLayout.GetTabAt(1).SetCustomView(Resource.Layout.tab_header_badge);

        }

在视图模型中,我使用了凸起的PropertyChanged()徽章会正常显示,只是不要更改值。布局

多人

提供自定义视图时,开箱即用的mvvmcross中没有任何内容可绑定TabLayout的内容但是,您可以使用MvxFrameControl尝试一些自定义设置

基本上,将您的LinearLayout替换为MvxFrameControl,然后

tabLayout.SetupWithViewPager(viewPager);

使用BindingInflate方法对自定义视图进行充气,并为MvxFrameControl的BindingContext设置一个值,然后使用该操作的结果设置自定义tablayout视图。

那可能会成功。

另一种方法是,监听Activity中ViewModel的“ PropertyChanged”事件,并在应用时手动更改选项卡布局。

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章