我想要把Button放在TableLayout裡面排版,如果只是單純只有兩個元件,是沒有什麼問題
問題是如果再加上TextClock,點擊Button之後就會發生文字無法置中。請參考下圖所示:
問題發生是發生在加入TextClock之後,每次秒數在更新時候,Android會重新刷新View
但這時候Button的gravity屬性就會失效,我不確定是不是一個bug,還是我書沒念好,哈~
就只能暫時先解決一下。以下是參考的解決方法:
「main.xml」
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.hsiang.uitest.Main2Activity">
<TableLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@+id/textClock"
android:layout_alignParentStart="true"
android:layout_marginTop="80dp">
<TableRow
android:layout_width="match_parent"
android:layout_height="match_parent">
<Button
android:layout_width="150dp"
android:layout_height="80dp"
android:text="點我啊笨蛋"
android:id="@+id/button"
android:layout_alignParentTop="true"
android:layout_alignParentStart="true"
android:textSize="20sp"
android:gravity="center_horizontal"
android:paddingTop="30dp"/>
<Button
android:layout_width="150dp"
android:layout_height="80dp"
android:text="點我啊笨蛋"
android:id="@+id/button2"
android:textSize="20sp"
android:layout_centerVertical="true"
android:layout_alignEnd="@+id/button"
android:gravity="center_horizontal"
android:paddingTop="30dp"/>
</TableRow>
</TableLayout>
<TextClock
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toEndOf="@+id/analogClock"
android:format12Hour="@string/time12format"
android:format24Hour="@string/time24format"
android:textSize="13sp"
android:layout_marginLeft="@dimen/phr_tc1_ml"
android:textColor="#898989"
android:layout_alignTop="@+id/analogClock"
android:id="@+id/textClock"/>
</RelativeLayout>
說明如下:
重點應該在於
「android:gravity="center_horizontal"」
「 android:paddingTop="30dp"」
要將同一個TableRow的Button都設定上面兩個屬性,但其實是無法真的將文字置中,
而是要靠android:paddingTop這個屬性來調整text的位置。
Platform Versions: 4.4, 4.3
沒有留言:
張貼留言