1

APIを実行しているNexus 6P、エミュレートされた6P、5 & 4つのAPI 24を実行していますが、エミュレート時には奇妙な動作を示していますネクサス5 & 4走行API 22エミュレータAPI 22にアンドロイドのgridlayoutが表示されていません

アプリのみプログラム.VISIBLE & .INVISIBLEに設定されている複数RelativeLayout sの単一の活性を有します。そのようなものの中でRelativeLayout私は次のように2 GridLayoutを持っています。 API22をエミュレートすると、下部のGridLayoutは表示されませんが、上位のものはAPI 22,23または24に関係なく常に表示されます。GridLayoutは、エミュレータ設定をAPI 24(23を試していない)に変更した場合のみ表示されます。それはなぜでしょうか?私はGridLayoutにAPI 23以上が必要なものは使用していないと思います。この問題は、このアプリをNexus 5で動作しているAPI 22または21にインストールできないことを意味します。ご提案いただきありがとうございます。

<RelativeLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:id="@+id/gameOperations" 
    android:visibility="invisible"> 

    <LinearLayout 
     android:orientation="vertical" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:id="@+id/launchDisplay" 
     android:gravity="center_horizontal"> 

     <TextView 
      android:text="@string/app_name" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:id="@+id/launchTitle" 
      android:textStyle="normal|bold" 
      android:textSize="50dp" 
      android:textAlignment="center" 
      android:fontFamily="casual" 
      android:textColor="@android:color/holo_blue_dark" 
      android:layout_marginTop="15dp" 
      android:layout_weight="1" /> 

     <ImageView 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      app:srcCompat="@drawable/brain_orig_crop_500" 
      android:id="@+id/launchImage" 
      android:scaleType="centerInside" 
      android:layout_weight="2" /> 

     <TextView 
      android:text="@string/launchSubtitle" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:id="@+id/launchSubtitle" 
      android:fontFamily="casual" 
      android:textAlignment="center" 
      android:textColor="@android:color/holo_blue_dark" 
      android:textSize="25dp" 
      android:textStyle="normal|bold" 
      android:layout_weight="1" 
      android:layout_marginTop="15dp" /> 

     <LinearLayout 
      android:orientation="horizontal" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:id="@+id/launchControls" 
      android:gravity="center_vertical" 
      android:layout_weight="1"> 

      <Button 
       android:text="@string/debug" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:id="@+id/launchSpacerLeft" 
       android:layout_weight="1" 
       android:background="@color/colourTransparent" 
       android:textSize="15dp" 
       android:fontFamily="casual" 
       android:textAllCaps="false" 
       android:visibility="invisible" /> 

      <Button 
       android:text="@string/launchStart" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:id="@+id/launchStart" 
       android:textColor="@android:color/holo_green_dark" 
       android:textSize="38dp" 
       android:textStyle="normal|bold" 
       android:onClick="prepareNewGame" 
       android:layout_weight="3" 
       android:background="@color/colourTransparent" 
       android:fontFamily="casual" 
       android:textAllCaps="false" /> 

      <Button 
       android:text="@string/layoutNormal" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:id="@+id/launchSpacerRight" 
       android:layout_weight="1" 
       android:textAllCaps="false" 
       android:background="@color/colourTransparent" 
       android:fontFamily="casual" 
       android:textSize="15dp" /> 

     </LinearLayout> 

    </LinearLayout> 

    <GridLayout 
     android:layout_width="match_parent" 
     android:id="@+id/header" 
     android:columnCount="6" 
     android:rowCount="4" 
     android:layout_height="168dp" 
     android:useDefaultMargins="true" 
     android:layout_alignParentTop="true"> 

     <ImageView 
      android:layout_width="0dp" 
      android:layout_height="0dp" 
      app:srcCompat="@drawable/brain_orig_500" 
      android:id="@+id/imageBrain" 
      android:layout_column="0" 
      android:layout_row="0" 
      android:layout_rowWeight="1" 
      android:layout_rowSpan="4" 
      android:layout_columnSpan="6" 
      android:layout_columnWeight="1" 
      android:layout_gravity="fill" 
      android:scaleType="fitCenter" /> 

     <Button 
      android:text="@string/debug" 
      android:layout_width="0dp" 
      android:layout_height="0dp" 
      android:id="@+id/debug" 
      android:layout_column="2" 
      android:layout_row="3" 
      android:layout_columnSpan="2" 
      android:layout_rowWeight="1" 
      android:layout_columnWeight="1" 
      android:fontFamily="casual" 
      android:textSize="18dp" 
      android:textStyle="normal|bold" 
      android:textAllCaps="false" 
      android:onClick="prepareNewGame" 
      android:background="@color/colourTransparent" 
      android:layout_gravity="fill" 
      android:paddingTop="10dp" 
      android:visibility="gone" /> 

     <TextView 
      android:text="@string/blank" 
      android:layout_width="0dp" 
      android:layout_height="0dp" 
      android:id="@+id/spacerColumn" 
      android:layout_column="0" 
      android:layout_columnWeight="1" 
      android:layout_columnSpan="2" 
      android:layout_gravity="fill" 
      android:layout_row="0" 
      android:layout_rowSpan="3" 
      android:layout_rowWeight="3" /> 

     <TextView 
      android:layout_width="0dp" 
      android:layout_height="0dp" 
      android:text="@string/timerDisplay" 
      android:id="@+id/timerDisplay" 
      android:layout_column="0" 
      android:layout_row="3" 
      android:layout_columnSpan="2" 
      android:layout_rowWeight="1" 
      android:layout_columnWeight="1" 
      android:fontFamily="casual" 
      android:textSize="30dp" 
      android:textStyle="normal|bold" 
      android:gravity="start" 
      android:layout_gravity="fill" 
      android:layout_rowSpan="1" /> 

     <TextView 
      android:layout_width="0dp" 
      android:layout_height="0dp" 
      android:id="@+id/rightWrongDisplay" 
      android:layout_column="2" 
      android:layout_row="3" 
      android:layout_columnSpan="2" 
      android:layout_rowWeight="1" 
      android:layout_columnWeight="1" 
      android:textAlignment="center" 
      android:textStyle="normal|bold" 
      android:textSize="28dp" 
      android:fontFamily="casual" 
      android:layout_gravity="fill" 
      android:layout_rowSpan="1" 
      android:visibility="gone" /> 

     <TextView 
      android:text="@string/scoreDisplay" 
      android:layout_width="0dp" 
      android:layout_height="0dp" 
      android:id="@+id/scoreDisplay" 
      android:layout_column="4" 
      android:layout_row="3" 
      android:layout_columnSpan="2" 
      android:layout_rowWeight="1" 
      android:layout_columnWeight="1" 
      android:fontFamily="casual" 
      android:textStyle="normal|bold" 
      android:textSize="30dp" 
      android:gravity="end" 
      android:layout_gravity="fill" 
      android:layout_rowSpan="1" /> 

    </GridLayout> 

    <LinearLayout 
     android:orientation="horizontal" 
     android:layout_width="match_parent" 
     android:layout_height="50dp" 
     android:id="@+id/scoreBoard" 
     android:layout_alignParentTop="false" 
     android:layout_below="@+id/header" 
     android:visibility="gone"> 

    </LinearLayout> 

    <LinearLayout 
     android:orientation="horizontal" 
     android:layout_width="match_parent" 
     android:layout_height="100dp" 
     android:id="@+id/question" 
     android:layout_below="@+id/scoreBoard" 
     android:layout_marginTop="15dp" 
     android:gravity="center"> 

     <TextView 
      android:text="@string/operandLeft" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:id="@+id/operandLeft" 
      android:layout_weight="5" 
      android:textSize="60sp" 
      android:fontFamily="casual" 
      android:textAlignment="textEnd" 
      android:textStyle="normal|bold" 
      android:paddingEnd="10dp" 
      android:paddingStart="0dp" 
      android:layout_gravity="center_vertical|end" 
      android:paddingLeft="0dp" 
      android:paddingRight="10dp" 
      android:visibility="gone" /> 

     <TextView 
      android:text="@string/operator" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:id="@+id/operator" 
      android:layout_weight="1" 
      android:textAlignment="center" 
      android:textStyle="normal|bold" 
      android:textSize="60sp" 
      android:fontFamily="casual" 
      android:visibility="gone" /> 

     <TextView 
      android:text="@string/operandRight" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:id="@+id/operandRight" 
      android:layout_weight="5" 
      android:textAlignment="textStart" 
      android:textStyle="normal|bold" 
      android:textSize="60sp" 
      android:fontFamily="casual" 
      android:paddingStart="10dp" 
      android:paddingEnd="0dp" 
      android:layout_gravity="center_vertical|start" 
      android:paddingLeft="10dp" 
      android:paddingRight="0dp" 
      android:visibility="gone" /> 

     <TextView 
      android:text="@string/sampleQuestion" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:id="@+id/questionView" 
      android:layout_weight="1" 
      android:gravity="center" 
      android:textSize="60dp" 
      android:textStyle="normal|bold" 
      android:fontFamily="casual" /> 

    </LinearLayout> 

    <GridLayout 
     android:layout_width="match_parent" 
     android:layout_height="250dp" 
     android:layout_below="@+id/question" 
     android:layout_marginTop="10dp" 
     android:id="@+id/answers" 
     android:rowCount="2" 
     android:columnCount="2" 
     android:useDefaultMargins="true" 
     android:layout_above="@+id/footer"> 

     <Button 
      android:text="@string/answer0" 
      android:layout_width="0dp" 
      android:layout_height="0dp" 
      android:id="@+id/answer0" 
      android:layout_column="0" 
      android:layout_row="0" 
      android:layout_rowWeight="1" 
      android:layout_columnWeight="1" 
      android:onClick="actionAnswer" 
      android:textSize="50dp" 
      android:textAllCaps="false" 
      android:textStyle="normal|bold" 
      android:fontFamily="casual" 
      android:layout_gravity="fill_horizontal" 
      android:background="@color/colourTransparent" /> 

     <Button 
      android:text="@string/answer1" 
      android:layout_width="0dp" 
      android:layout_height="0dp" 
      android:id="@+id/answer1" 
      android:layout_column="1" 
      android:layout_row="0" 
      android:layout_rowWeight="1" 
      android:layout_columnWeight="1" 
      android:onClick="actionAnswer" 
      android:textSize="50dp" 
      android:textAllCaps="false" 
      android:textStyle="normal|bold" 
      android:fontFamily="casual" 
      android:layout_gravity="fill_horizontal" 
      android:background="@color/colourTransparent" /> 

     <Button 
      android:text="@string/answer2" 
      android:layout_width="0dp" 
      android:layout_height="0dp" 
      android:id="@+id/answer2" 
      android:layout_column="0" 
      android:layout_row="1" 
      android:layout_rowWeight="1" 
      android:layout_columnWeight="1" 
      android:layout_gravity="fill_horizontal" 
      android:onClick="actionAnswer" 
      android:textSize="50dp" 
      android:textAllCaps="false" 
      android:textStyle="normal|bold" 
      android:fontFamily="casual" 
      android:background="@color/colourTransparent" /> 

     <Button 
      android:text="@string/answer3" 
      android:layout_width="0dp" 
      android:layout_height="0dp" 
      android:id="@+id/answer3" 
      android:layout_column="1" 
      android:layout_row="1" 
      android:layout_rowWeight="1" 
      android:layout_columnWeight="1" 
      android:layout_gravity="fill_horizontal" 
      android:onClick="actionAnswer" 
      android:textSize="50dp" 
      android:textAllCaps="false" 
      android:textStyle="normal|bold" 
      android:fontFamily="casual" 
      android:background="@color/colourTransparent" /> 

    </GridLayout> 

    <LinearLayout 
     android:orientation="vertical" 
     android:layout_width="match_parent" 
     android:layout_height="25dp" 
     android:id="@+id/footer" 
     android:layout_marginTop="15dp" 
     android:gravity="center" 
     android:visibility="gone" 
     android:layout_alignParentBottom="true"> 

     <TextView 
      android:text="@string/footerText" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:id="@+id/footerText" 
      android:layout_weight="1" 
      android:gravity="center" 
      android:textSize="18sp" 
      android:fontFamily="casual" /> 

    </LinearLayout> 
</RelativeLayout> 

答えて

1

私も、まさにこの問題を持っていたと私は最終的にandroid.support.v7.widget.GridLayoutを使用しての代わりで解決策を見つけただけでGridLayout

私は深く詳細を理解していないが、GridLayoutの以前のバージョンはサポートしていないようですプロパティをサポートしていますが、android:layout_widthプロパティをサポートしています。 「layout_width」(存在する)を使って幅を「0dp」に設定し、「columnWeight」(存在しない)を使用して「ストレッチ」しようとすると、ウィジェットは0dpのままなので、表示されません。

GridLayoutの「support.v7」バージョンでは、「layout_columnWeight」を使用することができますが、app:layout_columnWeight = "1"のように、 'app'の前に 'android'を付ける必要があります。だからあなたのレイアウトファイルは次のようになります。重要な変更がGridlayoutandroid.support.v7.widget.を追加し、また、あなたは依存関係に使用したいgridlauout-V7のバージョンを追加する必要がありますandroid:layout_columnWeight="1"

app:layout_columnWeight="1"に変更されている

<android.support.v7.widget.GridLayout 
     android:layout_width="match_parent" 
     android:id="@+id/header" 
     android:columnCount="6" 
     android:rowCount="4" 
     android:layout_height="168dp" 
     android:useDefaultMargins="true" 
     android:layout_alignParentTop="true"> 

    <ImageView 
      android:layout_width="0dp" 
      android:layout_height="0dp" 
      app:srcCompat="@drawable/brain_orig_500" 
      android:id="@+id/imageBrain" 
      android:layout_column="0" 
      android:layout_row="0" 
      android:layout_rowWeight="1" 
      android:layout_rowSpan="4" 
      android:layout_columnSpan="6" 
      app:layout_columnWeight="1" 
      android:layout_gravity="fill" 
      android:scaleType="fitCenter" /> 

    . 
    . 
    . 

</android.support.v7.widget.GridLayout> 

をマニフェストのセクション私にとっては私が追加:

compile 'com.android.support:gridlayout-v7:26.0.0-alpha1'

そして、あなたのスタイルで列重みが含まれるように欠けている場合は、最後に、その後のように、「アプリ」プレフィックスを省略:

<style name="button_digit" parent="button"> 
    <item name="android:layout_width">0dip</item> 
    <item name="layout_columnWeight">1</item> 
    . 
    . 
    . 

</style> 
関連する問題