2017-09-28 18 views
1

アンドロイドスタジオを使用して、GridLayoutを使用して簡単な電卓アプリを作成しています。しかし、それは私のデバイスに表示されていません(はい、エミュレータではなく古いノート5で実行しています)。アンドロイドのスタジオでは、XMLファイルのデザインタブにどのように表示されるかを示していますが、携帯電話でアプリを実行すると少し変です。携帯電話で実行中のアプリのスクリーンショットとアンドロイドのスタジオデザインタブのスクリーンショットを投稿します。私はまた、私のフルXMLコードを自分のactivity_main.xmlに投稿します。アンドロイドアプリが期待通りに表示されない

マイ電話: enter image description here

のAndroidメーカー:

enter image description here

<?xml version="1.0" encoding="utf-8"?> 
<GridLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    tools:context="com.example.pvtboromeo.test.MainActivity" 
    android:id="@+id/activity_main" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <EditText 
     android:id="@+id/editText" 
     android:background="@android:color/black" 
     android:textColor="@android:color/white" 
     android:layout_row="0" 
     android:layout_column="0" 
     android:layout_columnSpan="4" 
     android:layout_rowSpan="2" 
     android:layout_rowWeight="1" 
     android:layout_columnWeight="1" 
     android:enabled="false" 
     android:gravity="bottom|right" 
     android:paddingRight="15sp" 
     android:paddingBottom="15sp" 
     android:textAlignment="gravity" 
     android:textSize="40sp" 
     android:text="TEST" /> 

    <Button 
     android:id="@+id/buttonC" 
     android:layout_column="0" 
     android:layout_row="2" 
     android:layout_columnWeight="1" 
     android:layout_rowWeight="1" 
     android:background="@drawable/button1" 
     android:textSize="20sp" 
     android:text="C"/> 

    <Button 
     android:id="@+id/buttonNegative" 
     android:layout_column="1" 
     android:layout_row="2" 
     android:layout_columnWeight="1" 
     android:layout_rowWeight="1" 
     android:background="@drawable/button1" 
     android:textSize="20sp" 
     android:text="+/-"/> 

    <Button 
     android:id="@+id/buttonPercent" 
     android:layout_row="2" 
     android:layout_column="2" 
     android:layout_rowWeight="1" 
     android:layout_columnWeight="1" 
     android:background="@drawable/button1" 
     android:textSize="20sp" 
     android:text="%" /> 

    <Button 
     android:id="@+id/buttonDivide" 
     android:layout_row="2" 
     android:layout_column="3" 
     android:layout_rowWeight="1" 
     android:layout_columnWeight="1" 
     android:background="@drawable/button2" 
     android:textSize="20sp" 
     android:text="/" /> 

    <Button 
     android:id="@+id/buttonSeven" 
     android:layout_column="0" 
     android:layout_row="3" 
     android:layout_columnWeight="1" 
     android:layout_rowWeight="1" 
     android:background="@drawable/button1" 
     android:textSize="20sp" 
     android:text="7"/> 

    <Button 
     android:id="@+id/buttonEight" 
     android:layout_column="1" 
     android:layout_row="3" 
     android:layout_columnWeight="1" 
     android:layout_rowWeight="1" 
     android:background="@drawable/button1" 
     android:textSize="20sp" 
     android:text="8"/> 

    <Button 
     android:id="@+id/buttonNine" 
     android:layout_row="3" 
     android:layout_column="2" 
     android:layout_rowWeight="1" 
     android:layout_columnWeight="1" 
     android:background="@drawable/button1" 
     android:textSize="20sp" 
     android:text="9" /> 

    <Button 
     android:id="@+id/buttonMultiply" 
     android:layout_row="3" 
     android:layout_column="3" 
     android:layout_rowWeight="1" 
     android:layout_columnWeight="1" 
     android:background="@drawable/button2" 
     android:textSize="20sp" 
     android:text="X" /> 

</GridLayout> 

私が間違って何をしているのですか?

答えて

0
android:layout_rowWeight="1" 
android:layout_columnWeight="1" 

この属性はAPI21以上でのみ使用されます。代わりにsupportv7 GridLayoutを使用する必要があります。
は、あなたのモジュールのbuild.gradleにこの

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

を追加します。 このようにxmlを変更します。

<?xml version="1.0" encoding="utf-8"?> 
<android.support.v7.widget.GridLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    tools:context="com.example.pvtboromeo.test.MainActivity" 
    android:id="@+id/activity_main" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <EditText 
     android:id="@+id/editText" 
     android:background="@android:color/black" 
     android:textColor="@android:color/white" 
     app:layout_row="0" 
     app:layout_column="0" 
     app:layout_columnSpan="4" 
     app:layout_rowSpan="2" 
     app:layout_rowWeight="1" 
     app:layout_columnWeight="1" 
     android:enabled="false" 
     android:gravity="bottom|right" 
     android:paddingRight="15sp" 
     android:paddingBottom="15sp" 
     android:textAlignment="gravity" 
     android:textSize="40sp" 
     android:text="TEST" /> 

    <Button 
     android:id="@+id/buttonC" 
     app:layout_column="0" 
     app:layout_row="2" 
     app:layout_columnWeight="1" 
     app:layout_rowWeight="1" 
     android:background="@color/colorPrimary" 
     android:textSize="20sp" 
     android:text="C"/> 

    <Button 
     android:id="@+id/buttonNegative" 
     app:layout_column="1" 
     app:layout_row="2" 
     app:layout_columnWeight="1" 
     app:layout_rowWeight="1" 
     android:background="@color/colorPrimary" 
     android:textSize="20sp" 
     android:text="+/-"/> 

    <Button 
     android:id="@+id/buttonPercent" 
     app:layout_row="2" 
     app:layout_column="2" 
     app:layout_rowWeight="1" 
     app:layout_columnWeight="1" 
     android:background="@color/colorPrimary" 
     android:textSize="20sp" 
     android:text="%" /> 

    <Button 
     android:id="@+id/buttonDivide" 
     app:layout_row="2" 
     app:layout_column="3" 
     app:layout_rowWeight="1" 
     app:layout_columnWeight="1" 
     android:background="@color/colorPrimary" 
     android:textSize="20sp" 
     android:text="/" /> 

    <Button 
     android:id="@+id/buttonSeven" 
     app:layout_column="0" 
     app:layout_row="3" 
     app:layout_columnWeight="1" 
     app:layout_rowWeight="1" 
     android:background="@color/colorPrimary" 
     android:textSize="20sp" 
     android:text="7"/> 

    <Button 
     android:id="@+id/buttonEight" 
     app:layout_column="1" 
     app:layout_row="3" 
     app:layout_columnWeight="1" 
     app:layout_rowWeight="1" 
     android:background="@color/colorPrimary" 
     android:textSize="20sp" 
     android:text="8"/> 

    <Button 
     android:id="@+id/buttonNine" 
     app:layout_row="3" 
     app:layout_column="2" 
     app:layout_rowWeight="1" 
     app:layout_columnWeight="1" 
     android:background="@color/colorPrimary" 
     android:textSize="20sp" 
     android:text="9" /> 

    <Button 
     android:id="@+id/buttonMultiply" 
     app:layout_row="3" 
     app:layout_column="3" 
     app:layout_rowWeight="1" 
     app:layout_columnWeight="1" 
     android:background="@color/colorPrimary" 
     android:textSize="20sp" 
     android:text="X" /> 

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

通知は、これはandroid.support.v7.widget.GridLayoutないandroid.widget.GridLayoutで、かつ属性が、私はあなたがConstraintLayoutを使用することをお勧め app:layout_rowWeight="1"ないandroid:layout_rowWeight="1"

0

です。多くの視点でレイアウトを行うより良い方法です。

優れたパフォーマンスを発揮するには(そしてプログラムする時間も少なくて済む)最善の方法です。

あなたが持っている最も美しいビューは、あなたの活動をよりゆっくりと動かします。あなたが私のコードを参照しようとすることができる電卓のシンプルなレイアウトのために

:国境を行うには

<?xml version="1.0" encoding="utf-8"?> 
<android.support.constraint.ConstraintLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
tools:context="com.example.moris.calcolatricelayoutconstraint.MainActivity"> 

<TextView 
    android:id="@+id/textView24" 
    android:layout_width="0dp" 
    android:layout_height="0dp" 
    android:background="@drawable/border" 
    android:gravity="center" 
    android:text="/" 
    app:layout_constraintBottom_toBottomOf="parent" 
    app:layout_constraintHorizontal_bias="0.0" 
    app:layout_constraintLeft_toRightOf="@+id/textView5" 
    app:layout_constraintRight_toLeftOf="@+id/textView6" 
    app:layout_constraintTop_toBottomOf="@+id/textView21" /> 

<TextView 
    android:id="@+id/textView25" 
    android:layout_width="0dp" 
    android:layout_height="0dp" 
    android:background="@drawable/border" 
    android:gravity="center" 
    android:text="x" 
    app:layout_constraintBottom_toBottomOf="parent" 
    app:layout_constraintHorizontal_bias="0.0" 
    app:layout_constraintLeft_toLeftOf="parent" 
    app:layout_constraintRight_toLeftOf="@+id/textView3" 
    app:layout_constraintTop_toBottomOf="@+id/textView22" /> 

<TextView 
    android:id="@+id/textView26" 
    android:layout_width="0dp" 
    android:layout_height="0dp" 
    android:background="@drawable/border" 
    android:gravity="center" 
    android:text="=" 
    app:layout_constraintBottom_toBottomOf="parent" 
    app:layout_constraintHorizontal_bias="0.0" 
    app:layout_constraintLeft_toRightOf="@+id/textView3" 
    app:layout_constraintRight_toRightOf="parent" 
    app:layout_constraintTop_toBottomOf="@+id/textView23" /> 

<TextView 
    android:id="@+id/textView21" 
    android:layout_width="0dp" 
    android:layout_height="0dp" 
    android:background="@drawable/border" 
    android:gravity="center" 
    android:text="-" 
    app:layout_constraintBottom_toTopOf="@+id/textView24" 
    app:layout_constraintHorizontal_bias="0.0" 
    app:layout_constraintLeft_toRightOf="@+id/textView5" 
    app:layout_constraintRight_toLeftOf="@+id/textView6" 
    app:layout_constraintTop_toBottomOf="@+id/textView18" /> 

<TextView 
    android:id="@+id/textView22" 
    android:layout_width="0dp" 
    android:layout_height="0dp" 
    android:background="@drawable/border" 
    android:gravity="center" 
    android:text="+" 
    app:layout_constraintBottom_toTopOf="@+id/textView25" 
    app:layout_constraintHorizontal_bias="0.0" 
    app:layout_constraintLeft_toLeftOf="parent" 
    app:layout_constraintRight_toLeftOf="@+id/textView3" 
    app:layout_constraintTop_toBottomOf="@+id/textView19" /> 

<TextView 
    android:id="@+id/textView23" 
    android:layout_width="0dp" 
    android:layout_height="0dp" 
    android:background="@drawable/border" 
    android:gravity="center" 
    android:text="%" 
    app:layout_constraintBottom_toTopOf="@+id/textView26" 
    app:layout_constraintHorizontal_bias="0.0" 
    app:layout_constraintLeft_toRightOf="@+id/textView3" 
    app:layout_constraintRight_toRightOf="parent" 
    app:layout_constraintTop_toBottomOf="@+id/textView20" /> 

<TextView 
    android:id="@+id/textView18" 
    android:layout_width="0dp" 
    android:layout_height="0dp" 
    android:background="@drawable/border" 
    android:gravity="center" 
    android:text="8" 
    app:layout_constraintBottom_toTopOf="@+id/textView21" 
    app:layout_constraintHorizontal_bias="0.0" 
    app:layout_constraintLeft_toRightOf="@+id/textView5" 
    app:layout_constraintRight_toLeftOf="@+id/textView6" 
    app:layout_constraintTop_toBottomOf="@+id/textView15" /> 

<TextView 
    android:id="@+id/textView19" 
    android:layout_width="0dp" 
    android:layout_height="0dp" 
    android:background="@drawable/border" 
    android:gravity="center" 
    android:text="7" 
    app:layout_constraintBottom_toTopOf="@+id/textView22" 
    app:layout_constraintHorizontal_bias="0.0" 
    app:layout_constraintLeft_toLeftOf="parent" 
    app:layout_constraintRight_toLeftOf="@+id/textView3" 
    app:layout_constraintTop_toBottomOf="@+id/textView16" /> 

<TextView 
    android:id="@+id/textView20" 
    android:layout_width="0dp" 
    android:layout_height="0dp" 
    android:background="@drawable/border" 
    android:gravity="center" 
    android:text="9" 
    app:layout_constraintBottom_toTopOf="@+id/textView23" 
    app:layout_constraintHorizontal_bias="0.0" 
    app:layout_constraintLeft_toRightOf="@+id/textView3" 
    app:layout_constraintRight_toRightOf="parent" 
    app:layout_constraintTop_toBottomOf="@+id/textView17" /> 

<TextView 
    android:id="@+id/textView15" 
    android:layout_width="0dp" 
    android:layout_height="0dp" 
    android:background="@drawable/border" 
    android:gravity="center" 
    android:text="5" 
    app:layout_constraintBottom_toTopOf="@+id/textView18" 
    app:layout_constraintHorizontal_bias="0.0" 
    app:layout_constraintLeft_toRightOf="@+id/textView5" 
    app:layout_constraintRight_toLeftOf="@+id/textView6" 
    app:layout_constraintTop_toBottomOf="@+id/textView3" /> 

<TextView 
    android:id="@+id/textView16" 
    android:layout_width="0dp" 
    android:layout_height="0dp" 
    android:background="@drawable/border" 
    android:gravity="center" 
    android:text="4" 
    app:layout_constraintBottom_toTopOf="@+id/textView19" 
    app:layout_constraintHorizontal_bias="0.0" 
    app:layout_constraintLeft_toLeftOf="parent" 
    app:layout_constraintRight_toLeftOf="@+id/textView3" 
    app:layout_constraintTop_toBottomOf="@+id/textView5" /> 

<TextView 
    android:id="@+id/textView17" 
    android:layout_width="0dp" 
    android:layout_height="0dp" 
    android:background="@drawable/border" 
    android:gravity="center" 
    android:text="6" 
    app:layout_constraintBottom_toTopOf="@+id/textView20" 
    app:layout_constraintHorizontal_bias="0.0" 
    app:layout_constraintLeft_toRightOf="@+id/textView3" 
    app:layout_constraintRight_toRightOf="parent" 
    app:layout_constraintTop_toBottomOf="@+id/textView6" /> 

<TextView 
    android:id="@+id/textView" 
    android:layout_width="0dp" 
    android:layout_height="0dp" 
    android:layout_marginEnd="8dp" 
    android:layout_marginLeft="8dp" 
    android:layout_marginRight="8dp" 
    android:layout_marginStart="8dp" 
    app:layout_constraintBottom_toTopOf="@+id/textView3" 
    app:layout_constraintHorizontal_bias="0.0" 
    app:layout_constraintLeft_toLeftOf="parent" 
    app:layout_constraintRight_toRightOf="parent" 
    app:layout_constraintTop_toBottomOf="@+id/editText" /> 

<EditText 
    android:id="@+id/editText" 
    android:layout_width="0dp" 
    android:layout_height="0dp" 
    android:layout_marginEnd="6dp" 
    android:layout_marginLeft="8dp" 
    android:layout_marginRight="6dp" 
    android:layout_marginStart="8dp" 
    android:ems="10" 
    android:hint="Insert numbers" 
    android:inputType="textPersonName" 
    app:layout_constraintBottom_toTopOf="@+id/textView" 
    app:layout_constraintLeft_toLeftOf="parent" 
    app:layout_constraintRight_toRightOf="parent" 
    app:layout_constraintTop_toTopOf="parent" 
    app:layout_constraintHorizontal_bias="0.0" /> 

<TextView 
    android:id="@+id/textView3" 
    android:layout_width="0dp" 
    android:layout_height="0dp" 
    android:background="@drawable/border" 
    android:gravity="center" 
    android:text="2" 
    app:layout_constraintBottom_toTopOf="@+id/textView15" 
    app:layout_constraintLeft_toRightOf="@+id/textView5" 
    app:layout_constraintRight_toLeftOf="@+id/textView6" 
    app:layout_constraintTop_toBottomOf="@+id/textView" /> 

<TextView 
    android:id="@+id/textView5" 
    android:layout_width="0dp" 
    android:layout_height="0dp" 
    android:background="@drawable/border" 
    android:gravity="center" 
    android:text="1" 
    app:layout_constraintBottom_toTopOf="@+id/textView16" 
    app:layout_constraintLeft_toLeftOf="parent" 
    app:layout_constraintRight_toLeftOf="@+id/textView3" 
    app:layout_constraintTop_toBottomOf="@+id/textView" /> 

<TextView 
    android:id="@+id/textView6" 
    android:layout_width="0dp" 
    android:layout_height="0dp" 
    android:background="@drawable/border" 
    android:gravity="center" 
    android:text="3" 
    app:layout_constraintBottom_toTopOf="@+id/textView17" 
    app:layout_constraintLeft_toRightOf="@+id/textView3" 
    app:layout_constraintRight_toRightOf="parent" 
    app:layout_constraintTop_toBottomOf="@+id/textView" /> 

を、私は描画可能リソースで、このxmlファイルの呼び出し「国境」を作成しました、とのTextViewの背景にそれを使用:

<?xml version="1.0" encoding="utf-8"?> 
<shape android:shape="rectangle" 
    xmlns:android="http://schemas.android.com/apk/res/android"> 

<stroke 
    android:color="@color/colorPrimaryDark" 
    android:width="2dp"/> 

<corners 
    android:radius="5dp"/> 

をあなたWA場合ConstraintLayoutの詳細については、https://developer.android.com/training/constraint-layout/index.html

特に、ビデオ4をご覧ください。

関連する問題