是否有任何控制ToggleButton开启和关闭状态的文本位置?例如,我希望文本标签在打开时左对齐,并在关闭时右对齐。ToggleButton开启和关闭状态的文本标签放置
编辑: 此外,我会在左侧和右侧包括一个小填充文本。大约5dp。并尽可能更好地控制标签的位置。
答案: 这就是我需要的!
button.setGravity(Gravity.RIGHT | Gravity.CENTER_VERTICAL);
button.setPadding(0, 0, 5, 0);
是否有任何控制ToggleButton开启和关闭状态的文本位置?例如,我希望文本标签在打开时左对齐,并在关闭时右对齐。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
}
}
}
谢谢!有没有办法在文本的位置上有更精细的纹理?像左,但5dp填充? – user123321
我添加了在togglebutton上设置填充的选项。它非常简单,如toggleButton.setPaddin(int left,int top,int right,int bottom);对于更多的控制,你可以考虑设置ToggleButton的LayoutParams – Entreco
是的,谢谢!我也明白了这一点!你摇滚。谢啦! – user123321
由于ToggleButton是TextView的子类,请尝试使用android:gravity="left"
。
请优先选择http://developer.android.com/reference/android/widget/TextView.html#attr_android:gravity。
非常感谢你! – user123321
ToggleButton b1 = (ToggleButton) findViewById(R.id.button1);
if(b1.isChecked()){
b1.setGravity(Gravity.RIGHT);
}
else{
b1.setGravity(Gravity.LEFT);
}
请注意,如果按钮不是最小尺寸(必须大于标签文本),则不会看到任何更改。
谢谢!有没有办法在文本的位置上有更精细的纹理?像左,但5dp填充? – user123321
变化通过改变每当按钮被添加在OnClickListener一些像这样的代码点击重力对齐:
toggleButton.setOnClickListener(new OnClickListener()
{
public void onClick(View v) {
if (((ToggleButton)v).isChecked())
toggleButton.setGravity(Gravity.LEFT);
else
toggleButton.setGravity(Gravity.RIGHT);
}
});
谢谢!有没有办法在文本的位置上有更精细的纹理?像左,但5dp填充? – user123321
我不知道有什么好的简单方法可以在这个位置上获得更细的颗粒。但我确实知道一个难题,那就是在左对齐文本的开头添加一个空格,然后在右对齐文本的末尾添加另一个空格。像这样“开”和“关” – HenrikS
是的,我也在考虑这一点,但我也需要填充顶部!看起来像一个切换按钮不允许进行大量的自定义。 – user123321
这正是我需要的!
button.setGravity(Gravity.RIGHT | Gravity.CENTER_VERTICAL);
button.setPadding(0, 0, 5, 0);
嗨。你能否提供你声明切换按钮的布局xml文件部分?谢谢。 – Paul
我试过这个,实际上我认为文字会放在绿线的右边,而是放在绿线的右边。似乎将文本放在绿线右侧是不可能的 - 参考:http://stackoverflow.com/questions/11084956/tooglebutton-align-text-label-on-the-right – Paul