-1

我需要您可以在图片中看到的视图顺序。我的 XML 布局文件如下。TextViewwith IDeqlr_tv_question_comment接管所有可用空间,其他视图不可见。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@drawable/bg_list_row_9patch" >

    <TextView
        android:id="@+id/eqlr_tv_question"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/eqlr_tv_question_comment"
        android:layout_alignParentLeft="true"
        android:layout_centerVertical="true"
        android:paddingBottom="@dimen/fifteen_dp"
        android:paddingLeft="@dimen/ten_dp"
        android:paddingTop="@dimen/fifteen_dp"
        android:textColor="@android:color/white"
        android:textSize="@dimen/list_row_text_size" />

    <ImageButton
        android:id="@+id/eqlr_bt_create_comment"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@id/eqlr_tv_question_comment"
        android:layout_alignParentRight="true"
        android:layout_centerVertical="true"
        android:background="@drawable/bg_write_comment"
        android:contentDescription="@string/write_comment"
        android:paddingRight="@dimen/twenty_dp" />

    <TextView
        android:id="@id/eqlr_tv_question_comment"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:background="@drawable/bg_comment_9patch"
        android:textColor="@android:color/white"
        android:textSize="@dimen/comment_text_size" />

</RelativeLayout>

所需的视图顺序

4

3 回答 3

1

这两个命令是互斥的:

    android:layout_above="@+id/eqlr_tv_question_comment"
    android:layout_centerVertical="true"

删除这两个android:layout_centerVertical="true"属性。

centerVertical优先并被above完全忽略。由于eqlr_tv_question_commentTextView 是添加的最后一个视图,因此它可能位于其他两个视图之上。

于 2012-11-24T18:14:29.487 回答
0

我之前的想法很糟糕,因为

  • 使用嵌套布局会导致 UI 性能不佳,
  • android:drawableRightImageView如果一个小图标应该位于文本的右侧(除非该图标是可点击的),应该使用该图标来代替

<TextView
    android:id="@+id/question"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@drawable/bg_list_row"
    android:drawablePadding="20dp"
    android:drawableRight="@drawable/btn_go"
    android:paddingLeft="10dp"
    android:paddingRight="10dp"
    android:textColor="@android:color/white"
    android:textSize="24sp"
    android:textStyle="bold" />

<TextView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_below="@id/question"
    android:background="@drawable/comment"
    android:paddingLeft="10dp"
    android:paddingRight="75dp"
    android:text="@string/short_text"
    android:textColor="@android:color/white"
    android:textSize="15sp" />

于 2013-11-07T09:52:23.253 回答
0

我更喜欢 2LinearLayout比 1 RelativeLayout

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical" >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@drawable/bg_list_row_9patch"
        android:paddingBottom="@dimen/fifteen_dp"
        android:paddingLeft="@dimen/ten_dp"
        android:paddingRight="@dimen/ten_dp"
        android:paddingTop="@dimen/fifteen_dp" >

        <TextView
            android:id="@+id/eqlr_tv_question"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_gravity="center_vertical"
            android:layout_weight="@dimen/exercise_list_row_tv_weight"
            android:textColor="@android:color/white"
            android:textSize="@dimen/list_row_text_size" />

        <ImageView
            android:id="@+id/eqlr_bt_create_comment"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_gravity="center_vertical"
            android:layout_weight="@dimen/exercise_list_row_iv_weight"
            android:background="@drawable/bg_write_comment"
            android:contentDescription="@string/write_comment" />
    </LinearLayout>

    <TextView
        android:id="@+id/eqlr_tv_question_comment"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@drawable/bg_comment_9patch"
        android:text="@string/test_indicator_descr"
        android:textColor="@android:color/white"
        android:textSize="@dimen/comment_text_size" />

</LinearLayout>
于 2012-11-24T18:32:13.047 回答