我正在努力创建一个简单的布局,在左边的两个TextView:s彼此之下,并且在右边相互对应两个TimePicker:s。但是,无论我使用哪种观点或我选择的属性看起来相关,我都无法获得理想的结果。这是我目前的尝试:
<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:stretchColumns="1"
>
<TableRow
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center_horizontal"
>
<TextView
android:layout_column="1"
android:id="@+id/text_start_time"
android:text="@string/start_time"
android:gravity="center_horizontal"
/>
<TimePicker
android:id="@+id/time_picker_start"
android:timePickerMode="spinner"
android:layout_marginTop="-25dp"
android:layout_marginBottom="-25dp"
android:layout_gravity="center"
/>
</TableRow>
<TableRow
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center_horizontal"
>
<TextView
android:layout_column="1"
android:id="@+id/text_end_time"
android:text="@string/end_time"
android:layout_gravity="center_horizontal"
/>
<TimePicker
android:id="@+id/time_picker_end"
android:timePickerMode="spinner"
android:layout_marginTop="-25dp"
android:layout_marginBottom="-25dp"
/>
</TableRow>
<TableRow>
<Button
android:layout_column="2"
android:layout_width="match_parent"
android:text="@string/button_calculate"
android:gravity="center"
android:onClick="calculateWorkingTime"
/>
</TableRow>
</TableLayout>
这给出了以下输出
正如您所见,“开始”甚至没有显示!我想将“开始”与TimePicker微调器的垂直中心对齐。怎么做?
答案 0 :(得分:0)
首先,不要使用TableLayout。使用Linears,因为您是初学者,他们更容易使用和理解。这是你应该做的:
<?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 xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<TextView
android:id="@+id/text_start_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/start_time"
android:gravity="center_horizontal"
/>
<TimePicker
android:id="@+id/time_picker_start"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:timePickerMode="spinner"
android:layout_marginTop="-25dp"
android:layout_marginBottom="-25dp"
android:layout_gravity="center"
/>
</LinearLayout>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<TextView
android:id="@+id/text_end_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/end_time"
android:gravity="center_horizontal"
/>
<TimePicker
android:id="@+id/time_picker_end"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:timePickerMode="spinner"
android:layout_marginTop="-25dp"
android:layout_marginBottom="-25dp"
android:layout_gravity="center"
/>
</LinearLayout>
<Button
android:layout_column="2"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:text="@string/button_calculate"
android:gravity="center"
android:onClick="calculateWorkingTime"
/>
</LinearLayout>
我所做的是创建一个线性布局,并在其中另外两个方向:水平,这使得元素看起来彼此相邻。 此外,我已经将宽度和高度放在所有元素上,这非常重要。 我已经把wrap_content,如果你想改变它,没问题。
我没有测试过,如果有任何错误,只需要测试
希望它有所帮助!