有人可以告诉我一个简单的PagerSlidingTabStrip工作实现吗?

user2923535:

这是库:https : //github.com/astuetz/PagerSlidingTabStrip我正在尝试实现它,但是我的应用在启动时总是崩溃。我试图了解发布的示例应用程序,但是认为我做的不正确。这是我的代码:

MainActivity.java


    导入android.graphics.Color; 
    导入android.graphics.drawable.ColorDrawable; 
    导入android.graphics.drawable.Drawable; 
    导入android.graphics.drawable.LayerDrawable; 
    导入android.graphics.drawable.TransitionDrawable; 
    导入android.os.Build; 
    导入android.os.Bundle; 
    导入android.os.Handler; 
    导入android.support.v4.app.Fragment; 
    导入android.support.v4.app.FragmentActivity; 
    导入android.support.v4.app.FragmentManager; 
    导入android.support.v4.app.FragmentPagerAdapter; 
    导入android.support.v4.view.ViewPager; 
    导入android.util.TypedValue; 
    导入android.view.Menu;
    导入android.view.MenuItem;
    导入android.view.View; 

    导入com.astuetz.PagerSlidingTabStrip; 


    公共类MainActivity扩展FragmentActivity { 

        private final Handler handler = new Handler(); 

        专用的PagerSlidingTabStrip标签;
        私人ViewPager传呼机;
        私有MyPagerAdapter适配器;

        @Override 
        protected void onCreate(Bundle savedInstanceState){ 
            super.onCreate(savedInstanceState); 
            setContentView(R.layout.activity_main); 

            制表符=(PagerSlidingTabStrip)findViewById(R.id.tabs); 
            传呼器=(ViewPager)findViewById(R.id.pager);
            adapter = new MyPagerAdapter(getSupportFragmentManager()); 

            pager.setAdapter(adapter);

            tabs.setViewPager(pager); 
        } 


        @Override 
        public boolean onCreateOptionsMenu(Menu menu){ 

            //膨胀菜单;这会将项目添加到操作栏(如果有)。
            getMenuInflater()。inflate(R.menu.main,menu); 
            返回true;
        } 

        @Override 
        public boolean onOptionsItemSelected(MenuItem item){ 
            //处理操作栏项目单击此处。
            只要
            您在AndroidManifest.xml中指定父活动,// 操作栏将//自动处理Home / Up按钮上的单击 
            int id = item.getItemId(); 
            如果(id == R.id.action_settings){ 
                返回true;
            } 
            return super.onOptionsItemSelected(item); 
        } 

        @Override 
        protected void onSaveInstanceState(Bundle outState){ 
            super.onSaveInstanceState(outState); 
        } 
        @覆盖
        保护无效onRestoreInstanceState(捆绑savedInstanceState){ 
            super.onRestoreInstanceState(savedInstanceState); 
        } 

        私有Drawable.Callback drawableCallback = new Drawable.Callback(){ 
            @Override 
            public void invalidateDrawable(Drawable who){ 
                getActionBar()。setBackgroundDrawable(who);
            } 
 
            @Override
            public void scheduleDrawable(Drawable who,Runnable what,long when){ 
                handler.postAtTime(what,when); 
            } 

            @Override 
            public void unscheduleDrawable(Drawable who,Runnable what){ 
                handler.removeCallbacks(what); 
            } 
        }; 

        公共类MyPagerAdapter扩展FragmentPagerAdapter { 
            私有最终String []标题= {“ T1”,“ T2”}; 

            公共MyPagerAdapter(FragmentManager fm){ 
                super(fm); 
            } 

            public CharSequence getPageTitle(int position){ 
                return TITLES [position]; 
            } 
            @Override
            public Fragment getItem(int i){ 
                返回null; 
            } 

            @Override 
            public int getCount(){ 
                返回TITLES.length; 
            } 
        } 
    }
    

这是acitivty_main.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin"
    tools:context="edu.purdue.test.app.MainActivity">

    <com.astuetz.PagerSlidingTabStrip
        android:id="@+id/tabs"
        android:layout_width="match_parent"
        android:layout_height="48dip" />

    <android.support.v4.view.ViewPager
        android:id="@+id/pager"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/tabs"
        tools:context=".MainActivity" />


</RelativeLayout>
贾维斯威望(Jarvis Prestidge):

您不实例化希望成为FragmentPagerAdapter中的标签的getItem方法的任何片段。而是您返回的null,因此没有视图可以填充viewpager。我可以看到您已经签出了他的示例项目,或者仔细研究了您尝试添加到viewpager中的片段。上面的答案看起来像一个不错的实现。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

有人可以告诉我最后一个循环在做什么吗?

有人可以告诉我一个好的依赖矩阵是什么样子并指定原因吗?

有人可以告诉我一种比较字符串的简单方法吗

我已经使用JOptionPane.showOptionDialog显示了一个JDialog,有人可以告诉我如何将其设置为inVisible或Dispose吗?

有人可以告诉我DateTimeZone :: getOffset PHP函数如何工作吗?

有人能告诉我为什么我在执行后得到一个“空”输出吗?

有人可以告诉我为什么这不是一个常数表达式吗?

它仅显示列表的第一个元素。有人可以告诉我错误是什么吗?

有人可以告诉我在React Js中子元素的这种循环实现有什么问题吗

有人能告诉我为什么这些 JavaScript 代码中的一个有效而另一个无效吗?

为什么我的while循环不起作用?有人可以告诉我错误消息的工作原理吗?

有人可以告诉我是否可以从我的CLinfo日志中执行OpenCL吗?

我可以告诉在我的网站之前有人访问过的最后一个网站吗?

有人可以告诉我我的代码有什么问题吗?[Python 2.7.1]

有人可以告诉我我的代码有什么问题吗?

有人能告诉我我的 RXJS 代码是如何工作的吗?

有人可以告诉我为什么只有一个按钮起作用吗?它始终是头号,但从来没有都

有人可以告诉我一种在Google App脚本中执行此操作的方法吗

有人可以告诉我另一种编写此代码行的方式吗?

有人可以告诉我为什么我的actionListener for循环不起作用吗?

有人可以告诉我我的Type或linq查询出了什么问题吗

我是React的新手,有人可以告诉我为什么会这样吗?

有人可以告诉我为什么我的if / else陈述不起作用吗?

有人可以告诉我这段代码有什么问题吗

iOS的UIProgressView栏没有更新,有人可以告诉我原因吗?

TextGeometry没有显示,有人可以告诉我为什么吗?

有人可以告诉我这张图片有什么问题吗?

有人可以告诉我此python代码有什么问题吗?

有人可以告诉我svg中的<g>和</ g>吗?