Android专业布局设计

时间:2014-10-06 05:24:46

标签: android android-layout

我已经浏览了互联网,试图找到一些关于XML设计的指南。

到目前为止,我发现最好的设计是保持布局“平坦”,这意味着将布局嵌套保持在最低限度。

基本上我将下面的四个布局堆叠在一起。我没有计划添加超过4.每个之间唯一不同的是simple_detail_image中的图像。我发现的选项是为每个项目使用<include>,然后以编程方式更改图像。

这是最佳做法还是更实用?

我探索过的另一个选择是制作一个ListView并填充它们,但这看起来有点矫枉过正。

<?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:background="@drawable/shape_rounded"
              android:padding="4dp"
              android:orientation="horizontal">

    <ImageView
        android:id="@+id/simple_detail_image"
        android:layout_width="72dp"
        android:layout_height="72dp"
        android:src="@drawable/ic_launcher"/>

    <TextView
        android:id="@+id/simple_detail_text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:layout_marginLeft="12dp"
        android:layout_marginStart="12dp"
        android:text="Hi"/>


    <Space
        android:layout_weight="1"
        android:layout_width="0dp"
        android:layout_height="wrap_content"/>

    <ImageView
        android:layout_gravity="center"
        android:layout_width="32dp"
        android:layout_height="32dp"
        android:layout_marginRight="@dimen/chevron_horizontal_margin"
        android:layout_marginEnd="@dimen/chevron_horizontal_margin"
        android:src="@drawable/ic_chevron_gray"/>
</LinearLayout>

1 个答案:

答案 0 :(得分:1)

您可以使用单个TextView代替整个布局,没有图像和容器来简化整个过程。

由于TextView可以同时包含不同的复合绘图 例如:

android:drawablePadding="4dp"
android:drawableLeft="@drawable/ic_launcher"
android:drawableRight="@drawable/ic_chevron_gray"

您可以在外部(垂直)容器中包含4个TextView,然后就完成了。

然后,在代码中,更改drawableLeft:

//public void setCompoundDrawablesWithIntrinsicBounds (int left, int top, int right, int bottom)
public void setCompoundDrawablesWithIntrinsicBounds (R.drawable.your_left_drawable_1, 0, R.drawable.ic_chevron_gray, 0);

这将使您的布局保持超级平稳和高效。