首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Xamarin Android的滑动选项卡布局中添加页面

如何在Xamarin Android的滑动选项卡布局中添加页面
EN

Stack Overflow用户
提问于 2017-08-02 18:34:55
回答 1查看 1.2K关注 0票数 0

我需要添加一些从滑动选项卡页面布局Xamarin Android的每个选项卡页面,我已经使滑动选项卡布局它的工作,但我不能改变每个选项卡的页面这里是我的代码片段代码:

代码语言:javascript
运行
复制
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);
            }
        }
    }

我在这里想要的是让每个选项卡重定向到我创建的另一个页面,这是我的页面示例

代码语言:javascript
运行
复制
<?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>
EN

Stack Overflow用户

回答已采纳

发布于 2017-08-02 18:39:14

在布局中包含PagerSlidingTabStrip小部件。这通常应该放在它所代表的ViewPager之上。

代码语言:javascript
运行
复制
<com.refractored.PagerSlidingTabStrip android:id="@+id/tabs" 
android:layout_width="match_parent" android:layout_height="?
attr/actionBarSize" android:background="?attr/colorPrimary" />

在您的OnCreate方法(或片段的OnCreateView )中,将小部件绑定到ViewPager。

代码语言:javascript
运行
复制
// 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 )。

(可选)如果将implement IOnPageChangeListener与视图分页程序一起使用,则应在小工具中设置它,而不是直接在分页程序上设置。

//从上面继续

代码语言:javascript
运行
复制
tabs.SetOnPageChangeListener(pageChangeListener);

有关示例代码,请参阅此链接:

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

示例http://cforbeginners.com/XamarinProjects.html

Youtube视频https://www.youtube.com/watch?v=0Rr0ZCvX_Zs

票数 1
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45458425

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档