2011-10-05 44 views
3

如何集中我的文本切換器?我試過設置重力,但它似乎沒有工作。Android,使文本切換器中央?

ts.setFactory(new ViewFactory() { 
     public View makeView() { 
     TextView t = new TextView(this); 
     t.setTypeface(tf); 
     t.setTextSize(20); 
     t.setTextColor(Color.WHITE); 
     t.setText("my text switcher"); 
     t.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL); 
     return t; 
    } 
    }); 
+0

如果你想把你的textview放在中心,那麼我認爲你使用了一些父級佈局,然後應用android:layout_gravity =「center」。嘗試這個。謝謝。 – user370305

+0

如何以編程方式將重力添加到線性佈局?而不是xml。 – beans

回答

2

該代碼是OK,你需要設置父textSwitcher寬度FILL_PARENT

無論是在XML與

<TextSwitcher android:layout_width="fill_parent" ... 

或代碼

import android.widget.LinearLayout.LayoutParams; 
//... 
textSwitcher=... 
textSwitcher.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT)); 
+0

可以在運行時獲得textswitcher的文本 – Karthi

2

如果您正在使用match_parent或TextSwit的固定值cher大小,請執行以下操作。在.XML:

<TextSwitcher 
    android:id="@+id/switcher" 
    android:layout_width="60dp" 
    android:layout_height="60dp"/> 

在代碼:

import android.widget.FrameLayout.LayoutParams; 

    TextSwitcher mSwitcher = (TextSwitcher) findViewById(R.id.switcher); 
    mSwitcher.setFactory(new ViewFactory() { 
     @Override 
     public View makeView() { 
      TextView t = new TextView(MainActivity.this); 
      t.setGravity(Gravity.CENTER); 
      t.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT)); 
      return t; 
     } 
    }); 

這是的LayoutParams設置爲MATCH_PARENT得到TextSwitcher垂直居中非常重要的。

+0

完美解決我的問題 –