android GridLayout的问题

时间:2014-06-17 17:44:59

标签: android android-layout multiline android-gridlayout fill-parent

我有两个关于GridLayout的问题。

  1. 当我说填充父母时,为什么布局会超过手机,父母会设置为与父母匹配?
  2. 为什么第三个文本视图(说“日期”的文本视图)被忽略了?保罗和说日期之间有一个很大的空间。
  3. 谢谢!

    enter image description here

    <GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:id="@+id/GridLayout1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:columnCount="2"
        android:rowCount="4"
        tools:context=".GridLayoutActivity" >
    
        <ImageView
            android:id="@+id/imgCabin1"
            android:layout_column="0"
            android:layout_row="0"
            android:layout_rowSpan="3"
            android:layout_height="248dp"
            android:scaleType="fitCenter"
            android:layout_width="200dp"
            android:src="@drawable/sky_beach" 
            android:background="#222222"/>
    
        <TextView
            android:id="@+id/txtCabint1Title"
            android:layout_width="fill_parent"
            android:layout_height="72sp"
            android:layout_column="1"
            android:layout_row="0"
            android:padding="10sp"
            android:text="Sky Beach"
            android:textSize="48sp" />
    
        <TextView
            android:id="@+id/txtCabinDesc"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_column="1"
            android:layout_gravity="left"
            android:layout_row="1"
            android:maxLines="5"
            android:padding="10sp"
            android:singleLine="false"
            android:text="Dog friendly vacation rental cabin on a scenic mountain river"
            android:textSize="24sp" />
    
        <TextView
            android:id="@+id/btnCabin1Reserve"
            android:layout_width="fill_parent"
            android:layout_height="60sp"
            android:background="#888888"
            android:gravity="left"
            android:layout_column="1"
            android:layout_row="2"
            android:text="Reserve"
            android:textSize="36sp" 
            android:padding="10sp"  />
    
        <TextView
            android:id="@+id/txtCabinDesc"
            android:layout_width="fill_parent"
            android:layout_height="60sp"
            android:layout_gravity="top"
            android:layout_column="1"
            android:layout_row="3"
            android:text="Date: "
            android:textSize="36sp" 
            android:padding="10sp"  />
    
    
    </GridLayout>
    

1 个答案:

答案 0 :(得分:1)

为什么不使用网格视图而不是使用网格视图,为什么不使用相对布局并相对设置布局。第二个问题是因为您正在逐个设置网格行,因此在设置imageview之后它会设置textview txtCabinDesc ..Try以下是我试过的代码片段。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/GridLayout1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:columnCount="2"
android:rowCount="4" >

<ImageView
    android:id="@+id/imgCabin1"
    android:layout_column="0"
    android:layout_row="0"
    android:layout_rowSpan="3"
    android:layout_height="248dp"
    android:scaleType="fitCenter"
    android:layout_width="200dp"
    android:src="@drawable/ic_launcher" 
    android:background="#222222"/>

<TextView
    android:id="@+id/txtCabint1Title"
    android:layout_width="match_parent"
    android:layout_toRightOf="@id/imgCabin1"
    android:layout_height="72sp"
    android:layout_column="1"
    android:layout_row="0"
    android:padding="10sp"
    android:text="Sky Beach"
    android:textSize="48sp" />

<TextView
    android:id="@+id/txtCabinDesc"
    android:layout_width="match_parent"
    android:layout_toRightOf="@id/imgCabin1"
    android:layout_below="@id/txtCabint1Title"
    android:layout_height="wrap_content"
    android:layout_column="1"
    android:layout_gravity="left"
    android:layout_row="1"
    android:maxLines="5"
    android:padding="10sp"
    android:singleLine="false"
    android:text="Dog friendly vacation rental cabin on a scenic mountain river"
    android:textSize="24sp" />

<TextView
    android:id="@+id/btnCabin1Reserve"
    android:layout_width="match_parent"
    android:layout_toRightOf="@id/imgCabin1"
    android:layout_below="@id/txtCabinDesc"
    android:layout_height="60sp"
    android:background="#888888"
    android:gravity="left"
    android:layout_column="1"
    android:layout_row="2"
    android:text="Reserve"
    android:textSize="36sp" 
    android:padding="10sp"  />

<TextView
    android:id="@+id/txtCabinDesc1"
    android:layout_width="match_parent"
    android:layout_toRightOf="@id/imgCabin1"
    android:layout_below="@id/btnCabin1Reserve"
    android:layout_height="60sp"
    android:layout_gravity="top"
    android:layout_column="1"
    android:layout_row="3"
    android:text="Date: "
    android:textSize="36sp" 
    android:padding="10sp"  />

同时更改最后一个textView的id,因为它与你的描述textView的id相冲突。