我想在Android中进行以下布局(刚开始)。
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<TextBlock Text="Text1" Grid.Row="0" />
<ListBox Grid.Row="1" />
<StackPanel Orientation="Horizontal" Grid.Row="2">
<Button Content="Button 1" />
<Button Content="Button 2" />
</StackPanel>
</Grid>
我到目前为止,但按钮没有显示在屏幕上。我的方法似乎无法拥有与星形大小相当的东西。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<TextView
android:text="@string/AppName"
android:textAppearance="?android:attr/textAppearanceLarge"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/textView1"
android:gravity="center_horizontal" />
<ListView
android:minHeight="25px"
android:layout_width="fill_parent"
android:id="@+id/listView1"
android:choiceMode="multipleChoice"
android:drawSelectorOnTop="true"
android:layout_height="fill_parent"
android:layout_below="@id/textView1" />
<LinearLayout
android:layout_below="@id/listView1"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<Button
android:text="Button"
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="match_parent" />
<Button
android:text="Button"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:id="@+id/button2"
android:gravity="center_vertical"
android:layout_gravity="right" />
</LinearLayout>
</RelativeLayout>
</LinearLayout>
有人可以解释一下吗?
谢谢!
答案 0 :(得分:2)
试试这个:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<TextView
android:text="AppName"
android:textAppearance="?android:attr/textAppearanceLarge"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/textView1"
android:gravity="center_horizontal" />
<LinearLayout
android:id="@+id/bottomLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:orientation="horizontal">
<Button
android:text="Button"
android:id="@+id/button1"
android:layout_width="0dp"
android:layout_weight="50"
android:layout_height="match_parent" />
<Button
android:text="Button"
android:layout_width="0dp"
android:layout_weight="50"
android:layout_height="match_parent"
android:id="@+id/button2" />
</LinearLayout>
<ListView
android:minHeight="25px"
android:layout_width="fill_parent"
android:id="@+id/listView1"
android:choiceMode="multipleChoice"
android:drawSelectorOnTop="true"
android:layout_height="fill_parent"
android:layout_alignParentRight="false"
android:layout_above="@id/bottomLayout"
android:layout_below="@id/textView1" />
</RelativeLayout>
编辑:listView1上的“fill_parent”正在推动屏幕外的布局w /按钮。我将布局移动到ListView的顶部,并使其与父级的底部对齐(否则它们将显示在顶部)。
android:layout_alignParentBottom="true"
然后将ListView对齐在bottomLayout的顶部,除了位于textView1的底部。
android:layout_above="@id/bottomLayout"
android:layout_below="@id/textView1"
答案 1 :(得分:0)
您应该使用LinearLayout
。RelativeLayout
不是跨平台友好的,无法从XAML或iOS角度理解。
反正。
XAML Auto
相当于Android android:wrap_content
要使用视图填充整个LinearLayout,您可以使用android:fill_parent
并让视图填充剩余空间,您需要将其与android:layout_weight="1"
结合使用。这很奇怪,但它可以轻松实现更复杂的布局。
<?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">
<TextView
android:text="Text1"
android:layout_height="wrap_content"
android:layout_width="fill_parent" />
<ListBox
android:layout_weight="1"
android:layout_height="fill_parent"
android:layout_width="fill_parent" />
<LinearLayout
android:orientation="horizontal"
android:layout_height="wrap_content"
android:layout_width="fill_parent">
<Button
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="Button 1" />
<Button
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="Button 2" />
</LinearLayout>
</LinearLayout>
请注意,LinearLayout
既可用作指定大小行为的方式 - 相当于行和列auto和start - ,也可用作StackPanel
,因为它根据方向堆叠任何内容。 / p>