我做了一个自定义布局,将徽章添加到Android上的选项卡中。这个徽章是文本视图。如何绑定此组件?可能吗?
我的自定义徽章布局:
<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);
}
在视图模型上,我使用了RaisedPropertychanged((徽章正常出现,只是不要改变价值。tablayout
盒子外面,当您提供自定义视图时,mvvmcross中没有任何东西可以绑定tablayout的 content 。但是,您可以使用mvxframecontrol
尝试自定义的东西基本上,用mvxframecontrol替换线性延迟,然后在
之后tabLayout.SetupWithViewPager(viewPager);
使用BindingInflate方法夸大您的自定义视图,并将值设置为MvxframeControl的bindingContext,然后以该操作的结果设置自定义tablayout视图。
可能会解决问题。
另一种方法是听取活动中的ViewModel的"属性变化"事件,并在使用时手动更改标签布局。