排行榜模板的表格布局xml - Android

时间:2018-01-30 09:15:45

标签: android android-layout android-recyclerview recyclerview-layout

我试图为用户排行榜创建一个布局,但我不知道如何制作每个"行"比例相等。

以下是用户列表: link to image

这是子布局的代码(填充了recyclerview):

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/topUsersLeaderboardItem_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:weightSum="12"
android:orientation="horizontal"
android:paddingBottom="@dimen/margin_extra_small"
android:paddingTop="@dimen/margin_extra_small">


<TextView
    android:id="@+id/topUsersLeaderboardItem_position"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="0"
    android:paddingStart="@dimen/margin_small"
    android:textColor="@color/colorBlack"
    android:layout_weight="2"
    android:layout_gravity="center_vertical"
    android:textSize="@dimen/font_size_small"/>

<RelativeLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_weight="8">
    <RelativeLayout
        android:id="@+id/topUsersLeaderboardItem_layoutPicUser"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical">

        <ImageView
            android:id="@+id/topUsersLeaderboardItem_userIcon"
            android:layout_width="50dp"
            android:layout_height="50dp"
            android:layout_centerHorizontal="true"
            android:src="@drawable/circular_profile"
            app:srcCompat="@drawable/circular_profile" />

        <TextView
            android:id="@+id/topUsersLeaderboardItem_userInitial"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true"
            android:layout_centerVertical="true"
            android:gravity="center_vertical|center_horizontal|center"
            android:text="U"
            android:textSize="@dimen/font_size_medium"/>
    </RelativeLayout>
    <TextView
        android:id="@+id/topUsersLeaderboardItem_username"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:layout_centerVertical="true"
        android:gravity="center_vertical|center_horizontal"
        android:text="uername"
        android:textColor="@color/colorBlack"
        android:layout_marginStart="8dp"
        android:layout_toEndOf="@+id/topUsersLeaderboardItem_layoutPicUser"
        android:textSize="@dimen/font_size_small"/>
</RelativeLayout>


<RelativeLayout
    android:id="@+id/topUsersLeaderboardItem_scoreLayout"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center_vertical"
    android:layout_weight="2"
    android:gravity="end">

    <TextView
        android:id="@+id/topUsersLeaderboardItem_score"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentStart="true"
        android:layout_centerVertical="true"
        android:text="150"
        android:textSize="@dimen/font_size_small"
        android:textColor="@color/colorBlack" />

    <ImageView
        android:id="@+id/topUsersLeaderboardItem_starImage"
        android:layout_width="30dp"
        android:layout_height="30dp"
        android:layout_alignParentEnd="false"
        android:layout_centerVertical="true"
        android:layout_marginEnd="@dimen/margin_small"
        android:layout_toEndOf="@+id/topUsersLeaderboardItem_score"
        android:src="@drawable/ic_star_yellow_24dp"
        app:srcCompat="@drawable/ic_star_yellow_24dp" />
</RelativeLayout>

从图中可以看出,当我想要修复时,左边数字所占的空间会增加。有没有办法制作这种&#34;表布局&#34;?谢谢大家!

2 个答案:

答案 0 :(得分:0)

请使用此

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/topUsersLeaderboardItem_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:weightSum="12"
android:orientation="horizontal"
android:paddingBottom="@dimen/margin_extra_small"
android:paddingTop="@dimen/margin_extra_small">


<TextView
    android:id="@+id/topUsersLeaderboardItem_position"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:text="0"
    android:paddingStart="@dimen/margin_small"
    android:textColor="@color/colorBlack"
    android:layout_weight="2"
    android:layout_gravity="center_vertical"
    android:textSize="@dimen/font_size_small"/>

<RelativeLayout
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_gravity="center_vertical"
    android:layout_weight="8">
    <RelativeLayout
        android:id="@+id/topUsersLeaderboardItem_layoutPicUser"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical">

        <ImageView
            android:id="@+id/topUsersLeaderboardItem_userIcon"
            android:layout_width="50dp"
            android:layout_height="50dp"
            android:layout_centerHorizontal="true"
            android:src="@drawable/circular_profile"
            app:srcCompat="@drawable/circular_profile" />

        <TextView
            android:id="@+id/topUsersLeaderboardItem_userInitial"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true"
            android:layout_centerVertical="true"
            android:gravity="center_vertical|center_horizontal|center"
            android:text="U"
            android:textSize="@dimen/font_size_medium"/>
    </RelativeLayout>
    <TextView
        android:id="@+id/topUsersLeaderboardItem_username"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:layout_centerVertical="true"
        android:gravity="center_vertical|center_horizontal"
        android:text="uername"
        android:textColor="@color/colorBlack"
        android:layout_marginStart="8dp"
        android:layout_toEndOf="@+id/topUsersLeaderboardItem_layoutPicUser"
        android:textSize="@dimen/font_size_small"/>
</RelativeLayout>


<RelativeLayout
    android:id="@+id/topUsersLeaderboardItem_scoreLayout"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_gravity="center_vertical"
    android:layout_weight="2">

    <TextView
        android:id="@+id/topUsersLeaderboardItem_score"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentStart="true"
        android:layout_centerVertical="true"
        android:text="150"
        android:textSize="@dimen/font_size_small"
        android:textColor="@color/colorBlack" />

    <ImageView
        android:id="@+id/topUsersLeaderboardItem_starImage"
        android:layout_width="30dp"
        android:layout_height="30dp"
        android:layout_alignParentEnd="false"
        android:layout_centerVertical="true"
        android:layout_marginEnd="@dimen/margin_small"
        android:layout_toEndOf="@+id/topUsersLeaderboardItem_score"
        android:src="@drawable/ic_star_yellow_24dp"
        app:srcCompat="@drawable/ic_star_yellow_24dp" />
</RelativeLayout>

答案 1 :(得分:0)

实际上,这是因为android:layout_width="wrap_content" 第一个TextView,给它一些预定义的值,如android:layout_width="10dp"。我希望它能解决你的问题 注意:不要忘记从TextView中删除重力