Android标签碎片格式错误

时间:2016-04-17 21:15:16

标签: android android-fragments android-5.0-lollipop

*编辑:我已在此帖子的底部包含了我的sytles.xml文件的代码,因为该错误可能在那里。

我正在开发一个使用标签界面的基本Android应用,其中每个标签都包含相应的片段。

enter image description here

我切换到第一个标签时遇到格式错误。正如您在下一张图片中看到的那样,所有项目都被按下了。这只发生在第一个标签中,即应用程序最初启动的标签;第二和第三都很好。

enter image description here

是什么导致了这个错误?

我已经将错误指向API 21(Lollipop)及以上版本。在Kitkat(API 19)上,内容保留在第一个选项卡上。

我查看了所有XML文件的填充或边距不规则,但无法找到任何内容。

此外,我在第一个标签的插槽中放入的片段并不重要;无论如何都会发生错误。

因为Kitkat上没有这个bug,所以我很想把它归功于Android操作系统本身,但任何澄清都会有所帮助。

以下是我对标签的高级代码,这可能会有所帮助。

public class PagerAdapter extends FragmentStatePagerAdapter {

    int mNumOfTabs;

    public PagerAdapter(FragmentManager fm, int NumOfTabs){
        super(fm);
        this.mNumOfTabs = NumOfTabs;
    }
    @Override
    public Fragment getItem(int position) {
        switch (position) {
            case 0:
                Tab2 tab1 = new Tab2();
                return tab1;
            case 1:
                Tab1 tab2 = new Tab1();
                return tab2;
            case 2:
                Tab3 tab3 = new Tab3();
                return tab3;
            default:
                return null;
        }
    }
    @Override
    public int getCount() {
        return mNumOfTabs;
    }
}

我的styles.xml文件:

<resources>>
    <style name="AppTheme.NoActionBar">
        <item name="windowActionBar">false</item>
        <item name="windowNoTitle">true</item>
        <item name="android:windowDrawsSystemBarBackgrounds">false</item>
        <item name="android:statusBarColor">@android:color/transparent</item>
    </style>
</resources>

1 个答案:

答案 0 :(得分:1)

看起来您的布局允许位于导航栏后面,这可能是自Android 5.0 Lollipop以来,因此在KitKat(或旧版本)上没有问题。

确保您没有将true设置为false。您可能必须在应用主题中明确将其设置为<style name="YourAppTheme"> ... <item name="android:windowDrawsSystemBarBackgrounds">false</item> </style>

System.ComponentModel.DataAnnotations.Schema.DatabaseGenerated