我正在为我的应用程序使用相对布局。我想在两个其他视图之间定位一个视图。我没有任何嵌套,我想知道如果没有它可以实现这一点。
我的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之间垂直居中。
以下是我的应用屏幕目前的状态:
答案 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 />
,这样您的顶部填充是相同的作为底部填充。保证金也是如此。您可以使用填充或边距,或两者兼而有之。