解决方案 »

  1.   

    我测试了下,TableRow TableLayout都无效
    RelativeLayout中的控件没有android:layout_gravity
    LinearLayout和FrameLayout有效果
    为什么我就不知道了
      

  2.   

    在tablelayout里加android:stretchColumns="0",就ok了
      

  3.   

    应该是布局的问题吧,试试LinearLayout
      

  4.   

    <TableRow 
         android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:gravity="cente">
                <Button 
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:id="@+id/Button01"
                    android:text="LONG"/>
                   </TableRow>
    貌似你的在布局里设置吧
      

  5.   

    我问的是为什么    <TableRow >
                <Button android:layout_gravity="center_horizontal"
    不能使按钮居中显示?
      

  6.   

    我不是很清楚~瞎猜的,是不是因为TableRow 继承是LinearLayout,而LinearLayout本身就不支持layout_gravity="center_horizontal";测试LinearLayout"center_horizontal"没用,但是"center_vertical"有用
      

  7.   

    澳~我有点明白了,LinearLayout本身就是线性布局,它本身的对子控件的居中方式只能有一种,不能像RelativeLayout那么灵活<LinearLayout 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"
        tools:context=".MainActivity"
        android:background="#ff8989" >    <LinearLayout
            android:background="#000000"
             android:layout_gravity="center_vertical"
            android:layout_width="200dp"
            android:layout_height="200dp"
            android:orientation="horizontal" >        <Button
                android:layout_gravity="center_vertical"
                android:id="@+id/button1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Button" />
            
        </LinearLayout></LinearLayout>
    向上边这个center_horizontal居中就没用;<LinearLayout 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"
        tools:context=".MainActivity"
        android:background="#ff8989" >    <LinearLayout
            android:background="#000000"
             android:layout_gravity="center_vertical"
            android:layout_width="200dp"
            android:layout_height="200dp"
            android:orientation="vertical" >        <Button
                android:layout_gravity="center_horizontal"
                android:id="@+id/button1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Button" />
            
        </LinearLayout></LinearLayout>
    这个就是"center_vertical"没用,,嘴比较笨,心里敞亮但说不明白~见谅哈
      

  8.   

    TableRow默认就是有多列的,你设置了<TableRow   android:gravity="center">,就让你的列都居中了。
    如果你只设置<Button android:layout_gravity="center_horizontal",那它只在第一列的位置移动。你可以试试
    <Button android:layout_gravity="left",<Button android:layout_gravity="right",
    应该会有移动距离,但肯定限制在第一列里
      

  9.   

    一个设置了left,一个设置了right,为啥两个都在左边呢?
      

  10.   

    试试这个:
    <?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"    
         >     
        <TableLayout         
            android:layout_width="fill_parent"        
            android:layout_height="fill_parent"
              android:stretchColumns="0" >         
            <TableRow >             
                <TextView android:layout_gravity="left"                 
                    android:layout_width="wrap_content"                
                    android:layout_height="wrap_content"                
                    android:id="@+id/TextView01"                
                    android:text="Test Toast"/>         
             </TableRow>         
             <TableRow >             
                 <Button android:layout_gravity="center_horizontal"                
                     android:layout_width="wrap_content"                
                     android:layout_height="wrap_content"                
                     android:id="@+id/Button01"                
                     android:text="LONG"/>                
              </TableRow>        
              <TableRow 
                  
                 
                  
                  >               
                  <Button    
                      android:layout_gravity="center"           
                      android:layout_width="wrap_content"                
                      android:layout_height="wrap_content"                
                      android:id="@+id/Button02"                
                      android:text="SHORT"/>             
              </TableRow>        
          </TableLayout> 
    </RelativeLayout> 
      

  11.   

    对于 LinearLayout 
    当 android:orientation="vertical"  时, 只有水平方向的设置才起作用,垂直方向的设置不起作用。即:left,right,center_horizontal 是生效的。 
    当 android:orientation="horizontal" 时, 只有垂直方向的设置才起作用,水平方向的设置不起作用。即:top,bottom,center_vertical 是生效的。 参考自该博文:http://www.cnblogs.com/xiaoQLu/archive/2012/10/22/2733631.html
      

  12.   

    相对布局,顾名思义,通俗点说就是相对于哪个的哪边;比如下面3个,第一个全部居中,第二个水平居中,第三个垂直居中;
    android:layout_centerInParent="true" 
            android:layout_centerHorizontal="true"
            android:layout_centerVertical="true"