2017-01-25 2 views
0

Кто-то, пожалуйста, помогите, это убивает меня !!! У меня есть текстовое представление, которое я пытаюсь выполнить, по какой-то причине он не обновляется? текст не изменяется, вкладки просто пусты.Xamarin Tabs не меняет данные Android

ПРИМЕЧАНИЕ: никаких ошибок или каких-либо вкладок не работает нормально, текст никогда не обновляется. Я не могу понять, почему, пожалуйста, помогите !!

Заранее спасибо

Main.cs:

using System; 
using Android.App; 
using Android.Content; 
using Android.Runtime; 
using Android.Views; 
using Android.Widget; 
using Android.OS; 

namespace App1 
{ 
    [Activity(Label = "ActionBar Tabs Example")] 
    public class Main : Activity 
    { 
     protected override void OnCreate(Bundle bundle) 
     { 
      base.OnCreate(bundle); 

      // Set our view from the "main" layout resource 
      SetContentView(Resource.Layout.TabbedMenuPage); 

      //enable navigation mode to support tab layout 
      this.ActionBar.NavigationMode = ActionBarNavigationMode.Tabs; 

      //adding audio tab 
      AddTab("Audio", Resource.Drawable.Icon, new AudioFragment()); 

      //adding video tab 
      AddTab("Video", Resource.Drawable.Icon, new VideoFragment()); 
     } 

     /* 
     * This method is used to create and add dynamic tab view 
     * @Param, 
     * tabText: title to be displayed in tab 
     * iconResourceId: image/resource id 
     * fragment: fragment reference 
     * 
     */ 
     void AddTab(string tabText, int iconResourceId, Fragment fragment) 
     { 
      var tab = this.ActionBar.NewTab(); 
      tab.SetText(tabText); 
      tab.SetIcon(iconResourceId); 

      // must set event handler for replacing tabs tab 
      tab.TabSelected += delegate (object sender, ActionBar.TabEventArgs e) { 
       e.FragmentTransaction.Replace(Resource.Id.fragmentContainer, fragment); 
      }; 

      this.ActionBar.AddTab(tab); 
     } 


     class AudioFragment : Fragment 
     { 
      public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) 
      { 
       base.OnCreateView(inflater, container, savedInstanceState); 

       var view = inflater.Inflate(Resource.Layout.Tab, container, false); 
       var sampleTextView = view.FindViewById<TextView>(Resource.Id.textView); 
       sampleTextView.Text = "This is Audio Fragment Sample"; 
       return view; 
      } 
     } 

     class VideoFragment : Fragment 
     { 
      public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) 
      { 
       base.OnCreateView(inflater, container, savedInstanceState); 

       var view = inflater.Inflate(Resource.Layout.Tab, container, false); 
       var sampleTextView = view.FindViewById<TextView>(Resource.Id.textView); 
       sampleTextView.Text = "This is Video Fragment Sample"; 

       return view; 
      } 
     } 






    } 
} 

Tabaxml:

<?xml version="1.0" encoding="utf-8"?> 
<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/textView" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:gravity="center" 
    android:textStyle="bold" 
    android:textSize="16dp" 
    android:background="#ffe3e1e1" 
    android:textColor="#ff393939" /> 

TabbedMenu.axml:

<?xml version="1.0" encoding="utf-8"?> 
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     android:orientation="vertical" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent"> 
     <FrameLayout 
      android:id="@+id/fragmentContainer" 
      android:layout_width="match_parent" 
      android:layout_height="0dip" 
      /> 
    </LinearLayout> 

ответ

1

Ваш вопрос здесь:

<?xml version="1.0" encoding="utf-8"?> 
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     android:orientation="vertical" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent"> 
     <FrameLayout 
      android:id="@+id/fragmentContainer" 
      android:layout_width="match_parent" 
      android:layout_height="0dip" 
      /> 
    </LinearLayout> 

Ваш FrameLayout имеет высоту 0! Это означает, что весь контент внутри него скрыт. Установите layout_height на что-то еще, например match_parent.

Кроме того, примечание стороны, fill_parent устарело. Вы должны использовать match_parent.

+0

Это исправлено! Спасибо огромное! – Jay

Смежные вопросы