如何在android中的两个其他视图之间垂直定位视图?

时间:2014-11-10 01:35:07

标签: android textview

我正在为我的应用程序使用相对布局。我想在两个其他视图之间定位一个视图。我没有任何嵌套,我想知道如果没有它可以实现这一点。

我的XML代码很长很麻烦,所以我只是发布了相关的部分。如果您需要更多请告诉我:

<Spinner
    android:id="@+id/maze_algorithm_spinner"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/random_textview"
    android:layout_marginTop="40dp"
    android:layout_alignEnd="@+id/play"
    android:entries="@array/maze_generation_array"/>

<TextView
    android:id="@+id/maze_algorithm_textview"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBottom="@+id/maze_algorithm_spinner"
    android:layout_alignStart="@+id/help"
    android:padding="2dp"
    android:text="@string/maze_algorithm_spinner_text"
    android:background="@android:color/holo_green_light"/>

我基本上Choose algorithm textview及其微调器在Random Generation textview和Driver textview之间垂直居中。

以下是我的应用屏幕目前的状态:

enter image description here

2 个答案:

答案 0 :(得分:1)

如果你使用RelativeLayout作为父亲试试这个:

<RelativeLayout ...>
    <LinearLayout 
       android:id="@+id/random_generation_layout"... (responsible for randomGeneration)
       android:alignParentTop="true" >
       <TextView ... />
       <etc>
    </LinearLayout>

    <LinearLayout 
       android:id="@+id/choose_algo_layout"... (responsible for ChooseAlgorithm)
       android:layout_above="@+id/driver_layout"
       android:layout_below="@+id/random_generation_layout" >
       <TextView ... />
       <etc>
    </LinearLayout>

    <LinearLayout 
       android:id="@+id/driver_layout"... (responsible for driver) 
       android:alignParentBottom="true">
       <TextView ... />
       <etc>
    </LinearLayout>

</RelativeLayout>

希望它会帮助你!

答案 1 :(得分:0)

如果确实不希望嵌套,那么您可能想尝试在两者之间添加两个透明View,其中这两个View元素具有相同的高度。所以它就像

<RandomGeneration />
<View />
<ChooseAlgorithm />
<View />
<Drive />

另一方面,如果不使用额外的View s,并且您的尺寸当前设置为wrap_content,您还可以将填充分配给<ChooseAlgorithm />,这样您的顶部填充是相同的作为底部填充。保证金也是如此。您可以使用填充或边距,或两者兼而有之。