使用RelativeLayout均匀分割布局

sun*_*eet -2 android listview android-layout android-listview

我有一个Listview,每个listview项看起来像这样!在此输入图像描述

ListViewItem是RelativeLayout.现在我在创建两个分屏按钮时遇到问题.目前我这样做.

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" 
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">

    <LinearLayout 
        android:layout_height="fill_parent" android:layout_width="fill_parent"
        android:layout_below="@+id/ReviewText">

    <RelativeLayout
        android:layout_weight="1"
        android:layout_height="fill_parent" android:layout_width="0dp"
        android:onClick="likeClicked"
        android:clickable="true" >
        <!-- SOME CODE -->
    </RelativeLayout>

    <RelativeLayout
        android:layout_weight="1"
        android:layout_height="fill_parent" android:layout_width="0dp"
        android:onClick="likeClicked"
        android:clickable="true" >
        <!-- SOME CODE -->
    </RelativeLayout>

    </LinearLayout>

<RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

这工作得非常好,但这里android dev文档说明了这一点

此外,嵌套使用layout_weight参数的几个LinearLayout实例可能特别昂贵,因为每个子项需要测量两次.当布局重复膨胀时(例如在ListView或GridView中使用时),这一点尤其重要.

我可以改进我的代码以提高性能.如果是,怎么样?有没有其他方法可以在不使用LinearLayout的情况下均匀分割两个按钮?

Fan*_*mas 7

为了最大限度地减少布局嵌套,为了优化性能,我会编写一个布局(它确实利用了布局的相对性),如下所示:

<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    >
    <View
        android:id="@+id/dummy"
        android:layout_width="1dp"
        android:layout_height="1dp"
        android:layout_centerHorizontal="true"
        android:visibility="invisible"
    />
    <Button
        android:id="@+id/btnLeft"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_toLeftOf="@id/dummy"
        android:onClick="likeClicked"
        android:clickable="true"
    />
    <Button
        android:id="@+id/btnRite"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_toRightOf="@id/dummy"
        android:onClick="likeClicked"
        android:clickable="true"
    />
<RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

我放了一个与中心对齐的虚拟视图,然后是2个按钮,我将它对齐到它的左侧和右侧.