2016-04-17 10 views
0

*編集:この投稿の末尾に私のsytles.xmlファイルのコードが含まれています。バグがある可能性があります。Androidタブのフラグメントフォーマットバグ

各タブに対応する部分が含まれているタブインターフェースを使用する基本的なAndroidアプリを開発しています。

enter image description here

私は最初のタブに切り替えたとき、私は、書式設定のバグに遭遇しています。次の画像でわかるように、すべての項目がプッシュダウンされます。これは最初のタブでのみ発生します。最初のタブは、アプリによって最初に起動されたタブです。 2番目と3番目は問題ありません。このバグを引き起こしている何

enter image description here

API 21(Lollipop)以上のバグを特定しました。 Kitkat(API 19)では、コンテンツは最初のタブに表示されているのでそのまま残ります。

パディングやマージン異常のためにすべてのXMLファイルを調べましたが、何も見つかりませんでした。

また、最初のタブのスロットに挿入するフラグメントは問題ではありません。バグは無関係に発生します。

Kitkatにはバグが存在しないため、Android OS自体にそのバグは付いていると思われますが、明確にすると参考になります。

ここには、私がタブのために持っているハイレベルなコードがあります。参考になるかもしれません。

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

それは、Android 5.0ロリポップは、それゆえ、それはキットカット(またはそれ以前のバージョンには何の問題はませんので、あなたのレイアウトが可能であるナビゲーションバーの背後にあることを許可されているように見えますそのことについては)。

windowDrawsSystemBarBackgroundstrueをどこにも設定していないことを確認してください。あなたは、あなたのアプリのテーマにfalseに明示的に設定する必要がある場合があります私の `styles.xml`ファイルで

<style name="YourAppTheme"> 
    ... 
    <item name="android:windowDrawsSystemBarBackgrounds">false</item> 
</style> 
+0

は、その属性は' true'に設定しました。あなたが提案したようにそれを「false」に変更しましたが、バグは残っていました。投稿を編集して 'styles.xml'コードを追加しました。 – freezefry