这是布局:
正如您可能从上面的布局中看到的那样,外部布局是RelativeLayout
,其中所有元素都水平居中。此布局包含另一个布局,该布局也是RelativeLayout
分组的几个元素。我希望这个组垂直居中。
现在的问题是关于内部RL2
中显示的两个元素。它们基本上是一个按钮和一个进度条(圆形)。我希望按钮水平居中,进度条就在旁边;即progressBar.Left = button.Right + 10
(仅供参考)。
我花了最后几个小时试图找出一些东西,但我什么都没有。 (另外,Android上的布局设计还是非常新的。)
如果我能提供更多帮助,请告诉我。
编辑:我尝试了什么 -答案 0 :(得分:3)
我试图复制你想要的布局并想出了这个:
它对我有用
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="50dp"
android:padding="10dp"
>
<View
android:layout_width="match_parent"
android:layout_height="50dp"
android:background="#FF5722"
/>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
>
<View
android:id="@+id/view1"
android:layout_width="150dp"
android:layout_height="50dp"
android:layout_centerHorizontal="true"
android:layout_marginTop="50dp"
android:background="#0288D1"
/>
<View
android:id="@+id/centered"
android:layout_width="150dp"
android:layout_height="50dp"
android:layout_below="@id/view1"
android:layout_centerHorizontal="true"
android:layout_marginTop="50dp"
android:background="#0288D1"
/>
<View
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_alignTop="@id/centered"
android:layout_marginLeft="10dp"
android:layout_toRightOf="@id/centered"
android:background="#B58105"
/>
</RelativeLayout>
</RelativeLayout>
答案 1 :(得分:0)
将水平LinearLayout中的按钮和进度条换行。如果你开始嵌套,根据我的经验,Relativelayout会变得笨重。
答案 2 :(得分:0)
红色方块是不可见的<Space>
元素,其宽度/高度应与进度条相同。这也意味着您需要将每一行包裹在水平LinearLayout
中并将所有行包装在一个垂直的行中。
就效率而言,这可能并不理想。我认为一页或两页可以接受。
更新了@ p0lAris评论:
要将元素置于中间位置,您可以使用layout_weight
属性(= 100),并为<Space>
和<ProgressBar>
元素使用固定宽度。
这意味着按钮尽可能宽。
如果需要在开始/结束时进一步填充,则可以将padding属性添加到包含所有按钮行的父布局中。