0

我想在线性布局内水平居中评级栏和文本视图。事情就像 ratingbar 比 textview 小,我没有得到正确的对齐。我应该怎么做???

    <?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="match_parent" >

<TextView
    android:id="@+id/author_name"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" />

<LinearLayout
    android:id="@+id/ll1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:layout_below="@id/author_name"
    >

    <RatingBar
        android:id="@+id/rtbProductRating"
        style="@style/SmallRatingBar"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:isIndicator="true"
        android:numStars="5"

        android:layout_marginBottom="@dimen/padding_text"
        android:layout_marginLeft="@dimen/padding_text"
        android:rating="0" />

    <TextView
        android:id="@+id/time"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:paddingBottom="@dimen/padding_text"
        android:paddingLeft="8dp"
        android:paddingRight="8dp"
        android:textSize="18sp" >
    </TextView>
</LinearLayout>
<TextView
        android:id="@+id/texto"
        android:layout_below="@id/ll1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>

4

4 回答 4

0

通过使用线性布局,您可以使用 android:gravity="center"

以下布局可以做你想做的事:

<?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="match_parent" >

<TextView
    android:id="@+id/author_name"
    android:text="d"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" />

<LinearLayout
    android:id="@+id/ll1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:layout_below="@id/author_name"
    >

    <RatingBar
        android:id="@+id/rtbProductRating"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:isIndicator="true"
        android:numStars="5"
        android:rating="0" />

    <TextView
        android:id="@+id/time"
        android:layout_width="match_parent"
        android:layout_height="fill_parent"
        android:layout_gravity="center"
        android:gravity="center"
        android:paddingLeft="8dp"
        android:paddingRight="8dp"
        android:text="sdf"
        android:textSize="18sp" >

]
    </TextView>
</LinearLayout>
<TextView
        android:id="@+id/texto"
        android:layout_below="@id/ll1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>

</RelativeLayout>
于 2013-11-07T09:15:49.777 回答
0

请参阅下面的代码,我对其进行了一些修改,以便我可以对其进行测试。它工作正常。您可以使用此代码。请相应修改。

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

    <TextView
        android:id="@+id/author_name"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

    <LinearLayout
        android:id="@+id/ll1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/author_name"
        android:gravity="center_horizontal"
        android:orientation="horizontal" >

        <RatingBar
            android:id="@+id/rtbProductRating"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:layout_marginBottom="8dp"
            android:layout_marginLeft="8dp"
            android:isIndicator="true"
            android:numStars="5"
            android:rating="0" />

        <TextView
            android:id="@+id/time"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:paddingBottom="8dp"
            android:paddingLeft="8dp"
            android:paddingRight="8dp"
            android:text="test"
            android:textColor="@color/white"
            android:textSize="18sp" >
        </TextView>
    </LinearLayout>

    <TextView
        android:id="@+id/texto"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/ll1" />

</RelativeLayout>
于 2013-11-06T07:18:05.073 回答
0

Try This...Change... 在 RatingBar 上将 layout_width 更改为 match_parent

<LinearLayout
android:id="@+id/ll1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"

android:layout_below="@id/author_name"
>

<RatingBar
    android:id="@+id/rtbProductRating"
    style="@style/SmallRatingBar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:isIndicator="true"
    android:numStars="5"
    android:layout_marginBottom="@dimen/padding_text"
    android:layout_marginLeft="@dimen/padding_text"
    android:rating="0" />

<TextView
    android:id="@+id/time"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:paddingBottom="@dimen/padding_text"
    android:paddingLeft="8dp"
    android:paddingRight="8dp"
    android:textSize="18sp" >
</TextView>

于 2013-11-06T06:10:11.517 回答
0

在我看来,正如谷歌所建议的那样,在相对布局中使用线性布局不是一个好主意,您可以使用这样的相对布局来实现它:

    <?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="match_parent" >

<TextView
    android:id="@+id/author_name"
    android:text="d"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" />

<TextView
    android:id="@+id/texto"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_below="@id/author_name" />

<RatingBar
    android:id="@+id/rtbProductRating"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@id/texto"
    android:isIndicator="true"
    android:numStars="5"
    android:rating="0" />

<TextView
    android:id="@+id/time"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_below="@id/texto"
    android:layout_toRightOf="@id/rtbProductRating"
    android:gravity="center_horizontal|center_vertical"
    android:paddingLeft="8dp"
    android:paddingRight="8dp"
    android:text="asdf"
    android:textSize="18sp" />

</RelativeLayout>

不幸的是,我不明白您所说的 RatingBar 小于 textview 是什么意思!以及将它们居中时会怎样?

于 2013-11-06T06:33:08.533 回答