Mvx와 같은 방식으로 액션 바를 구현하려고했는데, 내 ViewModel에 액세스 할 수 있도록 TabActivity에서 속성을 만들었습니다. 내 ViewModel에서 열거하고 만들 수있는 작업 표시 줄 요소 목록이 있습니다. 나는 MvvMcross가 액션 바를 함축시키는 방법 (스튜어트에게 물어보십시오)과 같은 방법이 더 많을 것이라고 확신합니다.하지만 이것은 꽤 잘됩니다. 귀하의 활동을 TabActivity로부터 상속받는 것을 잊지 마십시오.
재산권 :
protected MvvMAppiAppi.Core.ViewModels.NavigationBarViewModel NavigationBarViewModel {
get{ return base.ViewModel as MvvMAppiAppi.Core.ViewModels.NavigationBarViewModel; }
}
코드 : 탭을 만들 수
protected override void OnCreate (Bundle bundle)
{
base.OnCreate (bundle);
SetContentView (Resource.Layout.view_NavigationBar);
//TabHost.TabSpec spec;
Intent intent;
foreach (var item in NavigationBarViewModel.MenuTabs) {
switch (item.PresentationMode) {
case "listByCategory":
{
var vm = NavigationBarViewModel.ListPresentationViewModel;
vm.CategorieId = item.id;
intent = this.CreateIntentFor (vm);
}
break;
...
...
...
...
}
intent.AddFlags (ActivityFlags.NewTask);
setUpTab (intent, item.Name, ResourceManager.I.getResId (item.ResourceName));
}
기능 : // 유래 : (HTTP [최신 MVVMCross와 ActionBarSherlock의]의
private void setUpTab (Intent view, string tag, int Resource)
{
View tabview = createTabView (this.TabHost.Context, tag, Resource);
TabHost.TabSpec spec = this.TabHost.NewTabSpec (tag).SetIndicator (tabview).SetContent (view);
this.TabHost.AddTab (spec);
}
private View createTabView (Context context, String text, int resource)
{
View view = LayoutInflater.From (context).Inflate (Resource.Layout.tabs_bg, null);
TextView tv = view.FindViewById<TextView> (Resource.Id.tabsText);
ImageView iv = view.FindViewById<ImageView> (Resource.Id.image);
iv.SetImageResource (resource);
tv.SetText (text, TextView.BufferType.Normal);
return view;
}
가능한 중복. co.kr/questions/16801728/actionbarsherlock-with-latest-mvvmcross) – Stuart
@stuart, 아니요 중복되지 않음 - actionbarsherlock 와 액션 바는 다릅니다. – Tim