2012-04-04 63 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);