是否可以在线性布局中将视图对齐到另一个视图下方?
我想做这样的事情:http: //i.imgur.com/LWgtBKO.png ?1
这可以通过线性布局实现吗?
我也想在不使用固定值(如固定高度/宽度)的情况下执行此操作,并且这些视图应该均匀地填充屏幕(如示例中所示)。
提前致谢
是否可以在线性布局中将视图对齐到另一个视图下方?
我想做这样的事情:http: //i.imgur.com/LWgtBKO.png ?1
这可以通过线性布局实现吗?
我也想在不使用固定值(如固定高度/宽度)的情况下执行此操作,并且这些视图应该均匀地填充屏幕(如示例中所示)。
提前致谢
Linearlayout 将子元素垂直或水平放置。在链接中有 imageview textview 和 table layout 所以相对布局是更好的解决方案。您可以通过使用线性布局来做到这一点。
使用两个线性布局 layoutOne 和 layoutTwo。
在 layoutTwo 中放置方向垂直并放置 textview 和 tablelayout。
在 layoutOne 中放置方向水平并放置 imageview 和 layoutTwo。
这样你就可以实现它。
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:weightSum="2" >
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@android:color/background_dark"
android:orientation="horizontal" >
<ImageView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingRight="6dp"
android:src="@drawable/ic_launcher" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical" >
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingRight="20dp"
android:text="TextView" />
<TableLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<TableRow
android:id="@+id/tableRow1"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/textView2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@android:color/background_light"
android:text="tablelayout" />
</TableRow>
</TableLayout>
</LinearLayout>
</LinearLayout>
<!-- second part -->
<LinearLayout
android:layout_width="0dp"
android:layout_marginLeft="10dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@android:color/background_light"
android:orientation="horizontal" >
<ImageView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingRight="6dp"
android:src="@drawable/ic_launcher" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical" >
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingRight="20dp"
android:text="TextView" />
<TableLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<TableRow
android:id="@+id/tableRow1"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/textView2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@android:color/background_light"
android:text="tablelayout" />
</TableRow>
</TableLayout>
</LinearLayout>
</LinearLayout>
</LinearLayout>
不,您不能layout_below
在线性布局中使用。
如果要将项目放在另一个下方,请使用android:orientation="vertical"
如果您希望它们并排放置,请使用android:orientation="horizontal"
要在 LinearLayout 中将视图对齐到另一个视图下方,您只需将方向设置LinearLayout
为Vertical
android:orientation="vertical"
视图应该均匀地填满屏幕
为此,您可以使用视图match_parent
的width
和height
属性。
当然这是可能的,但使用RelativeLayout
. 这将使其更加灵活,代码更少,嵌套更少Layouts
。你可以有一个LinearLayout
withhorizontal orientation
作为根layout
和 2RelativeLayouts
在里面。基本上是这样的
<RelativeLayout
...>
<ImageView
.../>
<TextView
...
android:layout_toRightOf="@+id/imagevViewID"
android:layout_alignParentTop="true"
.../>
<TableLayout
android:layout_below="@+id/textviewID"
android:layout_toRightOf="@+id/imageViewID"
.../>
</RelativeLayout>
我不会Layout
为你写完整的,但类似的东西会让你开始。当然,您需要添加 , 等的width
属性height
...
查看RelativeLayout Docs以获得您需要的确切属性,但在我看来,RelativeLayout
在很多情况下要好得多
是的,这是可能的,但为什么你必须使用线性布局?
这是线性布局的代码:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:weightSum="2" >
<!-- MAIN CONTAINER -->
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal" >
<!-- FIRST CONTAINER -->
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<!-- CHILD OF FIRST CONTAINER -->
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TableLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
</TableLayout>
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal" >
<!-- SECOND CONTAINER -->
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<!-- CHILD OF SECOND CONTAINER -->
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TableLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
</TableLayout>
</LinearLayout>
</LinearLayout>
</LinearLayout>
这是带有 RelativeLayout 的代码:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:padding="10dp">
<ImageView
android:id="@+id/imageView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/textView1"
android:layout_toRightOf="@+id/imageView1"
android:layout_alignTop="@+id/imageView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TableLayout
android:layout_toRightOf="@+id/imageView1"
android:layout_below="@+id/textView1"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
</TableLayout>
<ImageView
android:id="@+id/imageView2"
android:layout_toRightOf="@+id/textView1"
android:layout_alignTop="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/textView2"
android:layout_toRightOf="@+id/imageView2"
android:layout_alignTop="@+id/imageView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TableLayout
android:layout_toRightOf="@+id/imageView2"
android:layout_below="@+id/textView2"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
</TableLayout>
</RelativeLayout>
我不是 100% 确定我的代码会 100% 显示为您在问题中给出的图片,但我相信您可以从我的代码中了解如何创建这样的布局。如果你想使用线性布局只是因为你刚刚学习了android并且还没有学习 relativelayout 我认为现在是学习它的最佳时机,因为你可以看到相对布局中的代码比线性布局简单得多. 我希望我的回答可以帮助你,如果你还有其他问题,请随时在评论中提问:)