无论如何可以控制 ToggleButton 的打开和关闭状态的文本位置吗?例如,我希望文本标签在打开时左对齐,在关闭时右对齐。
编辑:另外,我会在左右两边的文本中添加一些填充。大约5dp。如果可能的话,可以更好地控制标签放置。
回答:这就是我需要的!
button.setGravity(Gravity.RIGHT | Gravity.CENTER_VERTICAL);
button.setPadding(0, 0, 5, 0);
无论如何可以控制 ToggleButton 的打开和关闭状态的文本位置吗?例如,我希望文本标签在打开时左对齐,在关闭时右对齐。
编辑:另外,我会在左右两边的文本中添加一些填充。大约5dp。如果可能的话,可以更好地控制标签放置。
回答:这就是我需要的!
button.setGravity(Gravity.RIGHT | Gravity.CENTER_VERTICAL);
button.setPadding(0, 0, 5, 0);
public class StackActivity extends Activity implements OnCheckedChangeListener {
private ToggleButton tb;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
tb = (ToggleButton)findViewById(R.id.toggleButton1);
tb.setOnCheckedChangeListener(this);
}
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)
{
if(isChecked)
{
tb.setGravity(Gravity.LEFT);
tb.setPadding(5,0,0,0); // Set left padding
} else
{
tb.setGravity(Gravity.RIGHT);
tb.setPadding(0,0,5,0); // Set right padding
}
}
}
ToggleButton b1 = (ToggleButton) findViewById(R.id.button1);
if(b1.isChecked()){
b1.setGravity(Gravity.RIGHT);
}
else{
b1.setGravity(Gravity.LEFT);
}
请注意,如果按钮不是最小尺寸(必须大于标签文本),您将看不到任何更改。
由于 ToggleButton 是 TextView 的子类,请尝试使用android:gravity="left"
.
请首选http://developer.android.com/reference/android/widget/TextView.html#attr_android:gravity。
每当单击按钮时,通过在 OnClickListener 中添加一些代码来更改对齐方式,如下所示:
toggleButton.setOnClickListener(new OnClickListener()
{
public void onClick(View v) {
if (((ToggleButton)v).isChecked())
toggleButton.setGravity(Gravity.LEFT);
else
toggleButton.setGravity(Gravity.RIGHT);
}
});
这就是我需要的!
button.setGravity(Gravity.RIGHT | Gravity.CENTER_VERTICAL);
button.setPadding(0, 0, 5, 0);