我需要为列表视图项创建一个如下所示的布局。但我不是想创造它,但我也在考虑性能。我试图通过使用具有权重属性的嵌套线性布局来做到这一点,但据我所知,使用具有此类属性的嵌套线性布局不是一个好习惯,因为它会降低我的应用程序的性能。我也尝试使用相对布局,但我还没有达到预期的效果。应该将最多的空间给予中间文本视图。 在此先感谢您的帮助。
答案 0 :(得分:0)
也许我没有正确理解你 - 也许你说的还有某些要求,但我认为它应该符合你的需求:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="100dp"
android:orientation="horizontal"
android:weightSum="1">
<RelativeLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="0.25"
android:background="#8E7AE5"></RelativeLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="0.5"
android:background="#E57A7A"
android:orientation="vertical">
<TextView
android:layout_width="match_parent"
android:layout_height="50dp"
android:background="#D5E57A"
android:gravity="center"
android:text="Top" />
<TextView
android:layout_width="match_parent"
android:layout_height="50dp"
android:gravity="center"
android:text="Down" />
</LinearLayout>
<RelativeLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="0.25"
android:background="#8E7AE5"></RelativeLayout>
</LinearLayout>
答案 1 :(得分:0)
好吧,我会这样做:
<LinearLayout xmlns:andoird="http://schemas.android.com/apk/res/android"
andoird:layout_width="match_parent"
andoird:layout_height="48dp"
andoird:orientation="horizontal"
android:weightSum:1>
<TextView
andoird:layout_width="0dp"
andoird:layout_height="match_parent"
andoird:layout_weight="0.25"
andoird:text="Left textView"/>
<!-- Middle container -->
<LinearLayout
andoird:layout_width="0dp"
andoird:layout_height="wrap_content"
andoird:layout_weight="0.5"
andoird:orientation="vertical">
<TextView
andoird:layout_width="match_parent"
andoird:layout_height="24dp"
andoird:text="Middle Top textView"/>
<TextView
andoird:layout_width="match_parent"
andoird:layout_height="24dp"
andoird:text="Middle Bottom textView"/>
</LinearLayout>
<Switch
andoird:layout_width="0dp"
andoird:layout_height="match_parent"
andoird:layout_weight="0.25"
andoird:text="Right switch" />
此布局不会抛出任何有关性能的XML警告。说到性能,你应该在ListView适配器中使用ViewHolder。它有很多帮助。
答案 2 :(得分:0)
请尝试这种方式,希望这有助于您解决问题。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="0.25"
android:gravity="center_vertical"
android:paddingLeft="10dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="textview"/>
</LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="0.50"
android:orientation="vertical"
android:paddingLeft="10dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:gravity="center_vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="textview"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:gravity="center_vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="textview"/>
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="0.25"
android:gravity="center_vertical"
android:paddingLeft="10dp">
<Switch
android:id="@+id/main_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</LinearLayout>
</LinearLayout>
注意:我认为使用LinearLayout可以满足您的需求。