2017-09-01 18 views
0

を変更します。GridLayoutには、私が使用して作業するのGridLayoutを取得しようとしてきた幅

<GridLayout 
     android:layout_width="match_parent" 
     android:layout_height="70dp"> 

     <TextView 
      android:text="sdfgh" 
      android:layout_height="wrap_content" 
      android:id="@+id/AvgGrade" 
      android:layout_row="2" 
      android:layout_column="1" 
      android:layout_rowWeight="0.2" 
      android:layout_columnWeight="0.5" 
      android:layout_gravity="fill" 
      android:textAlignment="gravity" 
      android:layout_columnSpan="1" /> 

     <TextView 
      android:text="words" 
      android:layout_height="wrap_content" 
      android:id="@+id/Totals" 
      android:layout_row="1" 
      android:layout_column="1" 
      android:textAlignment="gravity" 
      android:layout_rowWeight="0.2" 
      android:layout_columnWeight="0.5" 
      android:layout_gravity="fill" 
      android:layout_columnSpan="1" /> 

     <TextView 
      android:text="words" 
      android:layout_height="wrap_content" 
      android:id="@+id/textView3" 
      android:layout_row="2" 
      android:layout_column="0" 
      android:textAlignment="center" 
      android:layout_rowWeight="0.2" 
      android:layout_columnWeight="0.5" 
      android:layout_gravity="fill" 
      android:layout_columnSpan="1" /> 

     <TextView 
      android:text="words" 
      android:layout_height="wrap_content" 
      android:id="@+id/textView4" 
      android:layout_row="1" 
      android:layout_column="0" 
      android:layout_rowWeight="0.2" 
      android:layout_columnWeight="0.5" 
      android:layout_gravity="fill" 
      android:textAlignment="center" 
      android:layout_columnSpan="1" /> 

     <TextView 
      android:text="words" 
      android:layout_height="wrap_content" 
      android:id="@+id/TotalAvg" 
      android:layout_row="0" 
      android:layout_column="1" 
      android:textAlignment="gravity" 
      android:layout_rowWeight="0.2" 
      android:layout_columnWeight="0.5" 
      android:layout_gravity="fill" 
      android:layout_columnSpan="1" /> 

     <TextView 
      android:text="words" 
      android:layout_height="wrap_content" 
      android:id="@+id/textView6" 
      android:layout_row="0" 
      android:layout_column="0" 
      android:textAlignment="center" 
      android:layout_columnWeight="0.5" 
      android:layout_gravity="fill" 
      android:layout_columnSpan="1" /> 

    </GridLayout> 

私の問題は、データが列のサイズは多少、これまでに変更2列目の負荷何があるということです。私は左揃えと中央揃えを試しましたが、何も列の変更を止めないようです。ユーザーはこれらの値を繰り返し更新し、列のシフトのわずかな「ジグル」は本当に悪く見えます。

答えて

0

多くの不満の後、私はXMLレイアウトで解決策を見つけることができませんでした。しかし、私はプログラム的にかなりうまくいくと思われる解決策を見つけました。

私は私が私がそれを設定私のXMLレイアウトで、このリンクからre-setting a TextView height programmatically

を適応し、私のOnCreateの

public void ResizeTexts(){ 
    Display display = getWindowManager().getDefaultDisplay(); 
    DisplayMetrics outMetrics = new DisplayMetrics(); 
    display.getMetrics(outMetrics); 

    float density = getResources().getDisplayMetrics().density; 
    float dpWidth = (outMetrics.widthPixels/density); 

    text1.getLayoutParams().width = (int)dpWidth; 
    text2.getLayoutParams().width = (int)dpWidth; 
    text3.getLayoutParams().width = (int)dpWidth; 
    text4.getLayoutParams().width = (int)dpWidth; 
    text5.getLayoutParams().width = (int)dpWidth; 
    text6.getLayoutParams().width = (int)dpWidth; 
} 

の最後に呼び出されるメソッドを追加しました:

<GridLayout 
    android:layout_width="match_parent" 
    android:layout_height="70dp"> 

    <TextView 
     android:text="points" 
     android:layout_height="wrap_content" 
     android:layout_width="10dp" 
     android:id="@+id/text1" 
     android:layout_row="0" 
     android:layout_column="0" 
     android:textAlignment="textEnd" 
     /> 


    <TextView 
     android:text="totals" 
     android:layout_height="wrap_content" 
     android:layout_width="10dp" 
     android:id="@+id/text2" 
     android:layout_row="1" 
     android:layout_column="0" 

     android:textAlignment="textEnd"/> 


    <TextView 
     android:text="score" 
     android:layout_height="wrap_content" 
     android:id="@+id/text3" 
     android:layout_width="10dp" 
     android:layout_row="2" 
     android:layout_column="0" 
     android:textAlignment="textEnd"/> 


    <TextView 
     android:text="123.4" 
     android:layout_height="wrap_content" 
     android:id="@+id/text4" 
     android:layout_width="10dp" 
     android:layout_row="1" 
     android:layout_column="1" 
     android:textAlignment="textEnd"/> 

    <TextView 
     android:text="1.23" 
     android:layout_height="wrap_content" 
     android:id="@+id/text5" 
     android:layout_width="10dp" 
     android:layout_row="2" 
     android:layout_column="1" 
     android:textAlignment="textEnd"/> 

    <TextView 
     android:text="1234 " 
     android:layout_height="wrap_content" 
     android:id="@+id/text6" 
     android:layout_width="10dp" 
     android:layout_row="0" 
     android:layout_column="1" 
     android:textAlignment="textEnd"/> 

</GridLayout> 

*実際には使用されていないxmlレイアウトのレイアウト幅。

確かに、これを行うための最良の方法であるかどうかはわかりません。個人的に私はGridLayoutのXML のように、はそれ自身の上でこれを行うことができるはずです。しかし、私はそれを理解することができませんでした。

関連する問題