2017-12-28 11 views
1

私の電卓アプリケーションでは、GridLayoutを使ってすべてのボタンをレイアウトします。ここに私のコードがあるGridLayoutはプレビューと異なるレンダリング

enter image description here

:私はネクサス5倍エミュレータ上で自分のアプリケーションを実行するときしかし、それはこのようになります

enter image description here

:アンドロイドStudioのプレビューでは、このようになりますレイアウトファイル

<?xml version="1.0" encoding="utf-8"?> 
<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" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context="net.abc.deskcalculator.MainActivity" 

    android:layout_margin="8dp" 
    android:id="@+id/grid" 
    android:columnCount="7" 
    android:layout_gravity="fill_horizontal"> 

    <TextView 
     android:id="@+id/mode" 
     android:layout_columnSpan="7" 
     android:layout_column="0" 
     android:layout_row="0" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:text="RAD"/> 

    <TextView 
     android:id="@+id/window" 
     android:layout_width="match_parent" 
     android:layout_column="0" 
     android:layout_columnSpan="7" 
     android:layout_rowSpan="2" 
     android:layout_row="1" 
     android:text="" 
     android:minLines="2" 
     android:textAppearance="@style/TextAppearance.AppCompat.Large" 
     android:fontFamily="serif-monospace" 
     android:background="@drawable/window_border"/> 

    <Button 
     style="@style/calcBtnApperance" 
     android:id="@+id/bkspc" 
     android:text="@string/bkspc"/> 
    <Button 
     style="@style/calcBtnApperance" 
     android:id="@+id/clr" 
     android:text="@string/clr"/> 
    <Button 
     style="@style/calcBtnApperance" 
     android:text="@string/switchDegRadGrad"/> 
    <Button 
     style="@style/calcBtnApperance" 
     android:id="@+id/lparen" 
     android:text="@string/lparen"/> 
    <Button 
     style="@style/calcBtnApperance" 
     android:id="@+id/rparen" 
     android:text="@string/rparen"/> 
    <Button 
     style="@style/calcBtnApperance" 
     android:text="floor"/> 
    <Button 
     style="@style/calcBtnApperance" 
     android:text="ceil"/> 
    <Button 
     style="@style/calcBtnApperance" 
     android:text="√"/> 
    <Button 
     style="@style/calcBtnApperance" 
     android:text="log"/> 
    <Button 
     style="@style/calcBtnApperance" 
     android:text="ln"/> 
    <Button 
     style="@style/calcBtnApperance" 
     android:id="@+id/dig7"/> 
    <Button 
     style="@style/calcBtnApperance" 
     android:id="@+id/dig8"/> 
    <Button 
     style="@style/calcBtnApperance" 
     android:id="@+id/dig9"/> 
    <Button 
     style="@style/calcBtnApperance" 
     android:id="@+id/opDiv" 
     android:text="@string/opDiv" 
     /> 
    <Button 
     style="@style/calcBtnApperance" 
     android:text="x²"/> 
    <Button 
     style="@style/calcBtnApperance" 
     android:text="EE"/> 
    <Button 
     style="@style/calcBtnApperance" 
     android:text="exp"/> 
    <Button 
     style="@style/calcBtnApperance" 
     android:id="@+id/dig4"/> 
    <Button 
     style="@style/calcBtnApperance" 
     android:id="@+id/dig5"/> 
    <Button 
     style="@style/calcBtnApperance" 
     android:id="@+id/dig6"/> 
    <Button 
     style="@style/calcBtnApperance" 
     android:id="@+id/opMul" 
     android:text="@string/opMul" 
     /> 
    <Button 
     style="@style/calcBtnApperance" 
     android:text="π"/> 
    <Button 
     style="@style/calcBtnApperance" 
     android:text="a^b"/> 
    <Button 
     style="@style/calcBtnApperance" 
     android:text="cbrt"/> 
    <Button 
     style="@style/calcBtnApperance" 
     android:id="@+id/dig1"/> 
    <Button 
     style="@style/calcBtnApperance" 

     android:id="@+id/dig2"/> 
    <Button 
     style="@style/calcBtnApperance" 

     android:id="@+id/dig3"/> 
    <Button 
     style="@style/calcBtnApperance" 

     android:id="@+id/opSub" 
     android:text="@string/opSub" 
     /> 
    <Button 
     style="@style/calcBtnApperance" 

     android:text="sin"/> 
    <Button 
     style="@style/calcBtnApperance" 

     android:text="cos"/> 
    <Button 
     style="@style/calcBtnApperance" 

     android:text="tan"/> 
    <Button 
     style="@style/calcBtnApperance" 

     android:text="@string/decpt"/> 
    <Button 
     style="@style/calcBtnApperance" 

     android:id="@+id/dig0"/> 
    <Button 
     style="@style/calcBtnApperance" 
     android:id="@+id/neg" 
     android:text="@string/neg"/> 
    <Button 
     style="@style/calcBtnApperance" 

     android:text="@string/opAdd" 
     android:id="@+id/opAdd"/> 
    <Button 
     style="@style/calcBtnApperance" 

     android:text="asin"/> 
    <Button 
     style="@style/calcBtnApperance" 

     android:text="acos"/> 
    <Button 
     style="@style/calcBtnApperance" 

     android:text="atan"/> 
    <Button 
     style="@style/calcBtnApperance" 

     android:id="@+id/varAns" 
     android:text="@string/varAns"/> 
    <Button 
     style="@style/calcBtnApperance" 

     android:text="@string/equals" 
     android:layout_columnSpan="3" 
     android:layout_gravity="fill_horizontal" 
     android:id="@+id/equals"/> 
</GridLayout> 

のstyles.xml

<style name="calcBtnApperance"> 
    <item name="android:textSize">14sp</item> 
    <item name="android:textColor">#fd3d3d3d</item> 
    <item name="android:textStyle">normal</item> 
    <item name="android:textAllCaps">false</item> 
    <item name="android:minWidth">49dp</item> 
    <item name="android:layout_gravity">center_horizontal</item> 
</style> 

(私はこのコードは、繰り返しですけど、私は念のために、完全なものを掲載。)

は、どのように私は最後の列の前に、このような大きなギャップがないことができますか?

また、新しい列を追加するたびにandroid:minWidth属性を調整することなく、新しい列が追加されるときに、テーブルの各セルが狭くなるようにするにはどうすればよいですか?その属性を設定しなかった場合、ボタンは画面の最後を過ぎていきます。

私はこれらの2つは同じ問題の症状だと思います。

私の分SDKが17

EDITです:数字は、あなたは、Android Studioのプレビューでそれらが表示されない理由である、プログラム的に充填しました。より小さなデバイス上でテストされている場合しかし、私はボタンの一部がするこの設計を想定

android:layout_width="wrap_content" 
android:layout_height="wrap_content" 

を属性とLinearView内でごGridLayoutを入れて、gravityorientation属性

android:orientation="vertical" 
android:gravity="center_horizontal" 

を追加GridLayout

答えて

1

変更します画面外に出る

+0

これらの2つの 'orientation'属性と' gravity'属性'LinearView'または' GridLayout'に行きますか? – stackptr

+0

LinearView .. –

+1

'layout_width'とlayout_height'を取り除かせません - それらは必要です – stackptr

関連する問題