2012-04-04 59 views
8

我正在嘗試進行PIN碼輸入活動,但有一件事情對我來說並不完全正常。Android TextView文本將不會中心

Pin Screenshot

將工作當用戶輸入PIN碼的方式,我將放置在每一個明星:我不能在截圖頂部在這裏得到的文本中的TextView中心TextView的可見反饋。問題是,我想讓這顆恆星居中。我曾嘗試過layout_gravity =「center」,但它沒有區別。這是我目前的佈局:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 
    <TextView 
    android:textAppearance="?android:attr/textAppearanceLarge" 
    android:layout_height="wrap_content" 
    android:id="@+id/textView1" 
    android:text="PIN Required" 
    android:layout_width="wrap_content" 
    android:layout_gravity="center_horizontal" 
    android:layout_marginBottom="12sp" 
    ></TextView> 
    <LinearLayout 
    android:layout_width="match_parent" 
    android:id="@+id/linearLayout1" 
    android:layout_height="wrap_content" 
    android:layout_marginBottom="12sp" 
    android:layout_gravity="center_horizontal" 
    > 
     <TextView 
     android:id="@+id/text1" 
     android:layout_height="32sp" 
     android:layout_width="48sp" 
     android:layout_weight="1" 
     android:layout_marginRight="2sp" 
     android:layout_marginLeft="48sp" 
     android:background="#FFFFFF" 
     android:text="X" 
     android:layout_gravity="center" 
     ></TextView> 
     <TextView 
     android:id="@+id/text2" 
     android:layout_height="32sp" 
     android:layout_width="48sp" 
     android:layout_weight="1" 
     android:layout_marginRight="2sp" 
     android:layout_marginLeft="2sp" 
     android:background="#FFFFFF" 
     ></TextView> 
     <TextView 
     android:id="@+id/text3" 
     android:layout_height="32sp" 
     android:layout_width="48sp" 
     android:layout_weight="1" 
     android:layout_marginRight="2sp" 
     android:layout_marginLeft="2sp" 
     android:background="#FFFFFF" 
     ></TextView> 
     <TextView 
     android:id="@+id/text4" 
     android:layout_height="32sp" 
     android:layout_width="48sp" 
     android:layout_weight="1" 
     android:layout_marginRight="48sp" 
     android:layout_marginLeft="2sp" 
     android:background="#FFFFFF" 
     ></TextView> 
    </LinearLayout> 
    <LinearLayout 
    android:layout_width="match_parent" 
    android:id="@+id/linearLayout2" 
    android:layout_height="wrap_content" 
    android:layout_marginBottom="12sp" 
    > 
     <Button 
     android:text="1" 
     android:textColor="#FFFFFF" 
     android:id="@+id/button1" 
     android:layout_height="32sp" 
     android:layout_width="64sp" 
     android:layout_weight="1" 
     android:editable="false" 
     android:layout_marginRight="2sp" 
     android:layout_marginLeft="48sp" 
     android:background="@drawable/action_background_gradient" 
     android:onClick="ButtonClicked" 
     ></Button> 
     <Button 
     android:text="2" 
     android:textColor="#FFFFFF" 
     android:id="@+id/button2" 
     android:layout_height="32sp" 
     android:layout_width="64sp" 
     android:layout_weight="1" 
     android:editable="false" 
     android:layout_marginRight="2sp" 
     android:layout_marginLeft="2sp" 
     android:background="@drawable/action_background_gradient" 
     android:onClick="ButtonClicked" 
     ></Button> 
     <Button 
     android:text="3" 
     android:textColor="#FFFFFF" 
     android:id="@+id/button3" 
     android:layout_height="32sp" 
     android:layout_width="64sp" 
     android:layout_weight="1" 
     android:editable="false" 
     android:layout_marginRight="48sp" 
     android:layout_marginLeft="2sp" 
     android:background="@drawable/action_background_gradient" 
     android:onClick="ButtonClicked" 
     ></Button> 
    </LinearLayout> 

    <!--... and so on for the rest of the buttons ... --> 
</LinearLayout> 

我有一個機器人:文本=「X」在那裏的第一個TextView的只是讓我可以看到,如果是工作。當我調整佈局時,它會消失。 我錯過了什麼簡單的事情?

回答

32

使用android:gravity="center"

雖然我沒有看到你的代碼中的任何元素的EditText。你確定你發佈了正確的代碼?

+0

那是因爲我是一個博傻,我的意思是說TextView的。一次處理兩件事。但我確實有重力=「中心」在那裏,它不工作。 – MrGibbage 2012-04-04 16:03:56

+7

Doh!我有layout_gravity,而不僅僅是重力。嘆氣...謝謝! – MrGibbage 2012-04-04 16:05:57

+0

謝謝,這對我很有幫助。 – Kedarnath 2014-05-14 08:32:20

0

要居中文本,對TextView的,不layout_gravity使用android:gravity

<TextView 
    android:id="@+id/text1" 
    android:layout_height="32sp" 
    android:layout_width="48sp" 
    android:layout_weight="1" 
    android:layout_marginRight="2sp" 
    android:layout_marginLeft="48sp" 
    android:background="#FFFFFF" 
    android:text="X" 
    android:gravity="center" /> 
11
<TextView 
    android:id="@+id/text1" 
    android:layout_height="32sp" 
    android:layout_width="48sp" 
    android:layout_weight="1" 
    android:layout_marginRight="2sp" 
    android:layout_marginLeft="48sp" 
    android:background="#FFFFFF" 
    android:text="X" 
    android:layout_gravity="center" 
    android:gravity="center" 
/> 

android:layout_gravity="center"涉及到該視圖的位置在它的父。 android:gravity="center"涉及此視圖內容的位置。

+0

+1來解釋差異。謝謝! – JohnK 2012-06-26 21:44:12

+0

對於我的特殊活動,只將'android:gravity'設置爲'center'並不能解決問題,我還需要將'android:layout_gravity'設置爲'center' +1 – 2017-08-16 15:09:41

1

相反的android:layout_gravity在文本視圖中使用android:gravity="center_horizontal"

0

這可以編程方式爲好,道:

textView.setGravity(Gravity.CENTER);