2017-08-02 6 views
0

スライディングタブページレイアウトから各タブにページを追加する必要があります。Xamarin Android、既にスライディングタブレイアウトを作成していますが、ここでは各タブのページを変更できません私のコード断片は、コードされていますXamarin Androidのスライディングタブレイアウトにページを追加する方法

public class SlidingTabsFragment : Fragment 
    { 
     private SlidingTabScrollView mSlidingTabScrollView; 
     private ViewPager mViewPager; 

     public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) 
     { 
      return inflater.Inflate(Resource.Layout.fragment_sample, container, false); 
     } 

     public override void OnViewCreated(View view, Bundle savedInstanceState) 
     { 
      mSlidingTabScrollView = view.FindViewById<SlidingTabScrollView>(Resource.Id.sliding_tabs); 
      mViewPager = view.FindViewById<ViewPager>(Resource.Id.viewpager); 
      mViewPager.Adapter = new SamplePagerAdapter(); 

      mSlidingTabScrollView.ViewPager = mViewPager; 
     } 

     public class SamplePagerAdapter : PagerAdapter 
     { 
      List<string> items = new List<string>(); 

      public SamplePagerAdapter() : base() 
      { 
       items.Add("Nasional"); 
       items.Add("Olahraga"); 
       items.Add("Internasional"); 
       items.Add("Hiburan"); 
       items.Add("Sains"); 
       items.Add("Ekonomi"); 
      } 

      public override int Count 
      { 
       get { return items.Count; } 
      } 

      public override bool IsViewFromObject(View view, Java.Lang.Object obj) 
      { 
       return view == obj; 
      } 

      public override Java.Lang.Object InstantiateItem(ViewGroup container, int position) 
      { 
       View view = LayoutInflater.From(container.Context).Inflate(Resource.Layout.pager_item, container, false); 
       container.AddView(view); 

       TextView txtTitle = view.FindViewById<TextView>(Resource.Id.item_title); 
       int pos = position + 1; 
       txtTitle.Text = pos.ToString(); 

       return view; 
      } 

      public string GetHeaderTitle(int position) 
      { 
       return items[position]; 
      } 

      public override void DestroyItem(ViewGroup container, int position, Java.Lang.Object obj) 
      { 
       container.RemoveView((View)obj); 
      } 
     } 
    } 

と私はここにしたいことは、各タブは私が作る別のページにリダイレクトされるようにすることです、そして、ここでは私のページの例です

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:orientation="vertical" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 
    <android.support.v7.widget.Toolbar 
     android:id="@+id/toolbar" 
     android:minHeight="?attr/actionBarSize" 
     android:background="?attr/colorPrimary" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     app:titleTextColor="#333639" /> 
    <android.support.v7.widget.RecyclerView 
     android:padding="8dp" 
     android:id="@+id/recyclerView" 
     android:layout_below="@id/toolbar" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" /> 
</RelativeLayout> 

答えて

0

を含めますあなたのレイアウトのPagerSlidingTabStripウィジェットこれは通常、それが表すViewPagerの上に置かれます。あなたのOnCreateメソッドで

<com.refractored.PagerSlidingTabStrip android:id="@+id/tabs" 
android:layout_width="match_parent" android:layout_height="? 
attr/actionBarSize" android:background="?attr/colorPrimary" /> 

(またはOnCreateViewフラグメントのため)、ViewPagerにウィジェットをバインドします。

// Initialize the ViewPager and set an adapter 
var pager = FindViewById<ViewPager>(Resource.Id.pager); 
pager.Adapter = new TestAdapter(SupportFragmentManager); 

// Bind the tabs to the ViewPager 
var tabs = FindViewById<PagerSlidingTabStrip>(Resource.Id.tabs); 
tabs.SetViewPager(pager); 

アダプターがCustomTabProviderインターフェイスを実装している場合は、カスタムタブビューを通過できます。返されるビューにid Resource.Id.psts_tab_titleが含まれている場合、このビューはTextViewでなければならず、タイトルを配置するために使用されます。ライブラリーがタブのTextViewタイトルを管理しないようにするには、タブレイアウトでResource.Id.psts_tab_titleと異なるIDを使用します。

アダプタがインターフェイスCustomTabProviderをインパクトしない場合は、デフォルトのタブが使用されます(これはID Resource.Id.psts_tab_titleのTextViewです)。

(オプション)ビューページャでIOnPageChangeListenerを実装する場合は、ページャではなくウィジェットで直接設定する必要があります。

https://github.com/jamesmontemagno/PagerSlidingTabStrip-for-Xamarin.Android

サンプル http://cforbeginners.com/XamarinProjects.html

YouTubeのビデオ https://www.youtube.com/watch?v=0Rr0ZCvX_Zs

:サンプルコードについては上記

tabs.SetOnPageChangeListener(pageChangeListener); 

から続け

//、このリンクを参照してください。 10

関連する問題