打开和关闭状态的ToggleButton文本标签放置

时间:2011-07-26 08:46:09

标签: android android-layout togglebutton

是否有控制ToggleButton开启和关闭状态的文本位置?例如,我希望文本标签在打开时保持对齐,在关闭时保持右对齐。

编辑: 此外,我还要在左侧和右侧为文本添加一些填充。大约5dp。如果可能的话,可以更好地控制标签的放置。

解答: 这就是我需要的!

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

5 个答案:

答案 0 :(得分: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
        }
    }
}

答案 1 :(得分:2)

ToggleButton b1 = (ToggleButton) findViewById(R.id.button1);
        if(b1.isChecked()){
            b1.setGravity(Gravity.RIGHT);
        }
        else{
            b1.setGravity(Gravity.LEFT);
        }

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

答案 2 :(得分:1)

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

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

答案 3 :(得分:1)

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

toggleButton.setOnClickListener(new OnClickListener() 
        {
            public void onClick(View v) {
               if (((ToggleButton)v).isChecked())
                    toggleButton.setGravity(Gravity.LEFT);
               else
                   toggleButton.setGravity(Gravity.RIGHT);
            }
        });

答案 4 :(得分:1)

这就是我需要的!

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