我正在寻找什么是最好的布局,以在android中完成以下操作。这类似于将要重复的行。
当前行由5个视图控件(两个图像和三个文本标签)组成。
我很确定我可以使用嵌套的表格布局来处理它。但是,从我读到目前为止。使用相对布局可以更好地处理它。
任何想法?如果您可以在帖子中包含样本布局,那将是非常好的。
感谢,
我正在寻找什么是最好的布局,以在android中完成以下操作。这类似于将要重复的行。
当前行由5个视图控件(两个图像和三个文本标签)组成。
我很确定我可以使用嵌套的表格布局来处理它。但是,从我读到目前为止。使用相对布局可以更好地处理它。
任何想法?如果您可以在帖子中包含样本布局,那将是非常好的。
感谢,
相对布局是在大多数情况下,你应该使用什么。您可以定位与属性相对布局内的观点一样
android:alignParentTop="true" // This puts the view at the top of the Relative Layout
或
android:layout_below="@id/view" // This puts the view below another view
我现在不能测试,但这里是我将如何实现用相对布局的例子:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/ivBigImage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/bigImage"
android:layout_centerVertical="true" />
<ImageView
android:id="@+id/ivSmallImage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/smallImage"
android:layout_toRightOf="@id/ivBigImage"/>
<TextView
android:id="@+id/tvTextOne"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Plus"
android:layout_toRightOf="@id/ivSmallImage" />
<TextView
android:id="@+id/tvTextTwo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Google Plus"
android:layout_toRightOf="@id/ivBigImage"
android:layout_below="@id/ivSmallImage/>
<TextView
android:id="@+id/tvTextThree"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="use to do some social networking"
android:layout_toRightOf="@id/ivBigImage"
android:layout_below="@id/tvTextTwo/>
</RelativeLayout>
当然,你永远不应该硬编码字符串就像我在这个例子做了:d
通常,我会与ListView一起去,因为我可以动态地为每一行从另一个布局添加更多的项目。与TableLayout相比,使用ListView的好处在于,如果行的内容超出屏幕可以包含的范围,您仍然可以向下滚动屏幕。
但是你也可以用一个ScrollView来包装TableLayout来达到同样的效果。
这只是关于你喜欢如何编码它。在用户方面,你可以通过两种布局获得几乎相同的UI结果。我做什么
例子:)
1在我的主要布局我有这个ListView控件作为容器。
<ListView android:id="@+id/summary" android:layout_width="match_parent" android:layout_height="match_parent" />
2)然后,我创建了一个名为row.xml对于将重复添加到ListView每一行另一个布局。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal" android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="4dp">
<ImageView
android:layout_width="60dp"
android:layout_height="60dp"
android:id="@+id/icon"
android:layout_gravity="center_vertical|left"
android:src="@drawable/green_alert"
android:layout_marginRight="12dp"
android:layout_marginLeft="6dp"/>
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="fill_parent" >
<LinearLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1">
<TextView
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:id="@+id/tvPNO"
android:layout_gravity="center_vertical"
android:textStyle="bold"
android:maxLines="1"
android:ellipsize="end"
android:text="PNO: 001.01"
android:textColor="#C5EAF8" />
<TextView
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:id="@+id/tvEntry"
android:layout_gravity="center_vertical"
android:gravity="right"
android:textStyle="bold"
android:maxLines="1"
android:ellipsize="end"
android:text="Entry: 1"
android:textColor="#C5EAF8" />
</LinearLayout>
<LinearLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1">
<TextView
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:id="@+id/tvDefoliator"
android:layout_gravity="center_vertical"
android:minLines="1"
android:ellipsize="end"
android:text="Defoliator: Mahasena Corbetti" />
<TextView
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:id="@+id/tvLpF"
android:layout_gravity="center_vertical"
android:gravity="right"
android:minLines="1"
android:ellipsize="end"
android:text="Larvae: 10" />
</LinearLayout>
<LinearLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1">
<LinearLayout
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_weight="35"
android:gravity="left">
<TextView
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:id="@+id/tvOryctes"
android:layout_gravity="center_vertical"
android:minLines="1"
android:ellipsize="end"
android:text="Oryctes: " />
<CheckBox
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:focusable="false"
android:clickable="false"
android:id="@+id/cbOryctes" />
</LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_weight="35"
android:gravity="center">
<TextView
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:id="@+id/tvTermite"
android:layout_gravity="center_vertical"
android:minLines="1"
android:ellipsize="end"
android:text="Termite: "/>
<CheckBox
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:focusable="false"
android:clickable="false"
android:id="@+id/cbTermite"/>
</LinearLayout>
<LinearLayout
android:orientation="horizontal"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_weight="30"
android:gravity="right">
<TextView
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:id="@+id/tvRat"
android:layout_gravity="center_vertical"
android:minLines="1"
android:ellipsize="end"
android:text="Rat: " />
<CheckBox
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:focusable="false"
android:clickable="false"
android:id="@+id/cbRat" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
我用1个图像和其他一些意见里面,它可能是类似于你希望达到的目标。
感谢您的建议。 – Sam
它是有道理的。我需要在填充上工作,但它看起来非常类似于我的想法。 谢谢 – Sam