2017-06-10 89 views
2

我的一項活動有3個片段,應該從上至下依次排列。適用於我的索尼Xperia Z3C(Android 6.0.1)手機,但在我的三星J1迷你(Android 5.1.1)上完美。第三/底部片段根本不顯示。未在一臺設備上顯示Android片段

有一個空的空間,它可以去,我知道空的空間是空的 - 我設置了片段2和3的背景,2更改,但它下面仍然有一個空的空間。

我調整了代碼,並放入了片段2的第二個副本,所以我假設它是片段本身的問題。

我知道創建了Fragment(它的onCreateView被調用,活動可以使用FragmentManager找到它),但它不會顯示在我的一個手機上。

任何提示非常感謝。

這是片段(改了個名字,但沒有別的...)

<FrameLayout 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" 
    tools:context="com.example.FragC"> 

    <GridLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:columnCount="4" 
     tools:background="@android:drawable/screen_background_dark"> 

     <Button 
      android:id="@+id/btnX" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_column="0" 
      android:layout_columnWeight="1" 
      android:layout_row="0" 
      android:onClick="scoreButtonClicked" 
      android:text="@string/xLab" /> 

     <!-- more buttons just the text, column and row changes --> 


    </GridLayout> 

</FrameLayout> 

這是活動

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:id="@+id/activityLL" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" 
    tools:context="com.example.Activity1"> 

    <fragment 
     android:id="@+id/fragA" 
     android:name="com.example.FragA" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     tools:layout="@layout/fragment_frag_a" /> 

    <fragment 
     android:id="@+id/fragB" 
     android:name="com.example.FragB" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     tools:layout="@layout/fragment_fragb" /> 

    <fragment 
     android:id="@+id/fragC" 
     android:name="com.example.FragC" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     tools:layout="@layout/fragmen_fragc" /> 

</LinearLayout> 

我只記得,我有這個活動的一道風景版本。它的頂層是一個水平線性佈局。左列是包含片段1和2的垂直線性佈局,然後片段3(又名不可見片段)應顯示在右側。它沒有。空間在那裏,但沒有片段。

更新我將所有按鈕從片段中取出,並用TextView(所有默認值通過GUI)替換它們,並顯示出來。它會出現在按鈕是令人困惑的三星...

我將按鈕寬度從0dp更改爲wrap_content,現在我看到按鈕的第一列。我可以看到第二和第三欄,但如果我嘗試添加第四欄,我可以看到的是第一欄。佈局真的很奇怪...

回答

2

好的,所以我有我的答案:扔掉GridLayout並使用嵌套的LinearLayouts。

正如我所說的原始代碼在1個設備上工作,但不是另一個。

幫助改變寬度。設置一個固定的寬度可以讓我得到所有的按鈕,但是在添加最後一個按鈕時使用wrap_content,只剩下按鈕1。

我找不出是什麼問題,我發現大多數答案使用嵌套的LinearLayouts。我做了,他們工作!

+0

在我的5.0 Z3C column_weight似乎只適用於最後一項... –