2017-05-28 8 views
0

ポートレートモードでは、このアンドロイドXMLが正しくレンダリングされない理由を私は思ったんだけど:AndroidのGridLayoutでビューのラップを制御する方法は?

<?xml version="1.0" encoding="utf-8"?> 
<GridLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:padding="20dp" 
    android:orientation="horizontal" 
    android:columnCount="5"> 
    <Switch 
     android:id="@+id/Switch1" 
     android:layout_column="0" 
     android:layout_columnSpan="5" 
     android:layout_row="0" 
     android:text="Use only WiFi when sending data?" 
     android:layout_marginBottom="10dp" 
     android:layout_columnWeight="5" 
     android:layout_gravity="fill_horizontal" 
     android:layout_width="wrap_content" /> 
    <TextView 
     android:id="@+id/TextView1" 
     android:layout_column="0" 
     android:layout_columnSpan="2" 
     android:layout_row="1" 
     android:padding="5dp" 
     android:text="Вкупно собрани податоци: " 
     android:layout_columnWeight="2" 
     android:maxHeight="60dp" 
     android:layout_gravity="fill_horizontal" 
     android:scrollHorizontally="false" 
     android:layout_width="wrap_content" 
     /> 
    <TextView 
     android:id="@+id/TextView2" 
     android:layout_column="2" 
     android:layout_row="1" 
     android:padding="5dp" 
     android:text="Empty Space 1" 
     android:layout_columnWeight="1" 
     android:layout_gravity="fill_horizontal" 
     android:layout_width="wrap_content" /> 
    <TextView 
     android:id="@+id/TextView3" 
     android:layout_column="3" 
     android:layout_row="1" 
     android:padding="5dp" 
     android:text="Empty Space 1" 
     android:layout_columnWeight="1" 
     android:layout_gravity="fill_horizontal" 
     android:layout_width="wrap_content" /> 
    <TextView 
     android:id="@+id/TextView4" 
     android:layout_column="4" 
     android:layout_row="1" 
     android:padding="5dp" 
     android:text="Empty Space 1" 
     android:layout_columnWeight="1" 
     android:layout_gravity="fill_horizontal" 
     android:layout_width="wrap_content" /> 
</GridLayout> 

それは次のようになります。

|--1--|--2--|--3--|--4--|--5--| 
|  fills all columns  | 
|-----------|-----|-----|-----| 
|  2  | 1 | 1 | 1 | 
|-----------|-----|-----|-----| 

を、私は、これは風景の中に良い動作していること、それは奇妙な見つけますモードでは、私はスイッチやテキストビューに、より多くのテキストを挿入するまで、おそらく問題は、コンテンツがラップではないので、私はlayout_widthを `wrap_content 'に設定しようとしましたが、それでも動作しません...だから他に何が欠けている..?ランタイムで私はデザイナーで見る同じレイアウトを得るので、私はXamarinを使用していますが、私はそれがXamarinのデザイナーの問題であるとは考えていないところで

* ..

答えて

0

私は問題だと思います最初のTextViewのテキストが長すぎます。コンテンツの長さが長くなったときにテキストを折り返したい場合は、通常、ビューの幅を0dp(android:layout_width="0dp")と指定して、グリッドレイアウトが動的に幅を計算するようにします。

Switchandroid:layout_columnWeight="5"は、TextViewのレイアウトを2行目に反映することがわかりました。次のようにコードを変更し、私の側で動作します:

<GridLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:padding="20dp" 
    android:orientation="horizontal" 
    android:columnCount="5"> 
    <Switch 
     android:id="@+id/Switch1" 
     android:layout_column="0" 
     android:layout_columnSpan="5" 
     android:layout_row="0" 
     android:text="Use only WiFi when sending data?" 
     android:layout_marginBottom="10dp" 
     android:layout_gravity="fill_horizontal" 
     android:layout_width="wrap_content" /> 
    <TextView 
     android:id="@+id/TextView1" 
     android:layout_column="0" 
     android:layout_columnSpan="2" 
     android:layout_row="1" 
     android:padding="5dp" 
     android:text="Вкупно собрани податоци: " 
     android:layout_columnWeight="2" 
     android:maxHeight="60dp" 
     android:layout_gravity="fill_horizontal" 
     android:layout_width="0dp" /> 
    <TextView 
     android:id="@+id/TextView2" 
     android:layout_column="2" 
     android:layout_row="1" 
     android:padding="5dp" 
     android:text="Empty Space 1" 
     android:layout_columnWeight="1" 
     android:layout_gravity="fill_horizontal" 
     android:layout_width="0dp" /> 
    <TextView 
     android:id="@+id/TextView3" 
     android:layout_column="3" 
     android:layout_row="1" 
     android:padding="5dp" 
     android:text="Empty Space 1" 
     android:layout_columnWeight="1" 
     android:layout_gravity="fill_horizontal" 
     android:layout_width="0dp" /> 
    <TextView 
     android:id="@+id/TextView4" 
     android:layout_column="4" 
     android:layout_row="1" 
     android:padding="5dp" 
     android:text="Empty Space 1" 
     android:layout_columnWeight="1" 
     android:layout_gravity="fill_horizontal" 
     android:layout_width="0dp" /> 
</GridLayout> 
+0

ありがとう! 3日の周りを検索、あなたは本当に私を救った! – jovanMeshkov

関連する問題