6

无论如何可以控制 ToggleButton 的打开和关闭状态的文本位置吗?例如,我希望文本标签在打开时左对齐,在关闭时右对齐。

编辑:另外,我会在左右两边的文本中添加一些填充。大约5dp。如果可能的话,可以更好地控制标签放置。

回答:这就是我需要的!

button.setGravity(Gravity.RIGHT | Gravity.CENTER_VERTICAL);
button.setPadding(0, 0, 5, 0);
4

5 回答 5

7
  
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
        }
    }
}
于 2011-07-26T09:00:00.257 回答
2
ToggleButton b1 = (ToggleButton) findViewById(R.id.button1);
        if(b1.isChecked()){
            b1.setGravity(Gravity.RIGHT);
        }
        else{
            b1.setGravity(Gravity.LEFT);
        }

请注意,如果按钮不是最小尺寸(必须大于标签文本),您将看不到任何更改。

于 2011-07-26T08:54:47.850 回答
1

由于 ToggleButton 是 TextView 的子类,请尝试使用android:gravity="left".

请首选http://developer.android.com/reference/android/widget/TextView.html#attr_android:gravity

于 2011-07-26T08:52:38.920 回答
1

每当单击按钮时,通过在 OnClickListener 中添加一些代码来更改对齐方式,如下所示:

toggleButton.setOnClickListener(new OnClickListener() 
        {
            public void onClick(View v) {
               if (((ToggleButton)v).isChecked())
                    toggleButton.setGravity(Gravity.LEFT);
               else
                   toggleButton.setGravity(Gravity.RIGHT);
            }
        });
于 2011-07-26T09:08:55.287 回答
1

这就是我需要的!

button.setGravity(Gravity.RIGHT | Gravity.CENTER_VERTICAL);
button.setPadding(0, 0, 5, 0);
于 2011-07-28T19:55:14.343 回答