正如标题所示,我正在开发一个带有布局视图的Android应用程序和两行按钮,用于完成各种任务。一排按钮位于顶部,一排位于底部,我喜欢看起来的样式。
现在对于不幸的部分:我使用了一对你不应该再使用的工具来完成这个:AbsoluteLayout,以及px中的按钮位置(和大小),而不是dp或sp。
问题是,即使我使用了更高级的布局工具,我也不知道如何将这组按钮放在屏幕的底部。这只是一个屏幕尺寸,更不用说第二个了(这就是我现在所拥有的......)
现在,这不是一个公开可用的应用程序,所以我并不十分担心通用兼容性,但是有人建议对两行中的一行5个按钮进行简单的布局XML描述屏幕的顶部和底部(以横向模式固定)???
此外,是否有人知道是否可以在运行时找到布局小部件?据我所知,重新调整它们很容易,但不能改变它们的位置?
谢谢,
R上。
答案 0 :(得分:0)
你的问题真的没有简短的答案。你最好的选择是阅读一个解释并向你展示正在发生的事情的教程。我认为this one对我来说是一个很好的起点。
答案 1 :(得分:0)
有几种方法可以完成你所说的,但我可能会使用RelativeLayout。有关如何在Romain Guy's blog上使用它们的详细解释。简而言之,一组按钮将设置为layout_alignParentTop="true"
,其他按钮将layout_alignParentBottom
设置为true - 问题已解决。您还可以在按钮上设置android:id
s,这样您就可以使用android:layout_toLeftOf
/ android:layout_toRightOf
将它们放在彼此的左/右边,或者您可以将每组按钮放在{ {1}} LinearLayout
。
至于在运行时重新定位元素,你绝对可以这样做 - 但你必须通过元素的android:orientation="horizontal"
来做(要么创建一个适当类型的新LayoutParams
对象并将其分配给LayoutParams
,或通过调用View
并修改返回的对象)。对于RelativeLayout的孩子,请参阅RelativeLayout.LayoutParams
。
答案 2 :(得分:0)
是的,使用FrameLayout和layout_gravity很容易做到。
<FrameLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"/>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="top"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"/>
...
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"/>
...
</LinearLayout>
</FrameLayout>
在两个按钮栏之间夹入视图可能需要将FrameLayout更改为LinearLayout并将中心视图上的layout_weight设置为1,而不指定按钮栏的权重。
答案 3 :(得分:0)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<LinearLayout android:id="@+id/linearLayout1" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="top">
<Button android:text="Button" android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1"></Button>
<Button android:text="Button" android:id="@+id/button2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1"></Button>
<Button android:text="Button" android:id="@+id/button3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1"></Button>
<Button android:text="Button" android:id="@+id/button5" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1"></Button>
<Button android:id="@+id/button4" android:layout_height="wrap_content" android:layout_width="wrap_content" android:text="Button" android:layout_weight="1"></Button>
</LinearLayout>
<LinearLayout android:id="@+id/linearLayout2" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="bottom" android:layout_gravity="bottom" android:layout_weight="1">
<Button android:text="Button" android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:gravity="bottom"></Button>
<Button android:text="Button" android:id="@+id/button2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1"></Button>
<Button android:text="Button" android:id="@+id/button3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1"></Button>
<Button android:text="Button" android:id="@+id/button5" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1"></Button>
<Button android:id="@+id/button4" android:layout_height="wrap_content" android:layout_width="wrap_content" android:text="Button" android:layout_weight="1"></Button>
</LinearLayout>
</LinearLayout>