如何使对话框中的开关按钮居中
Posted
技术标签:
【中文标题】如何使对话框中的开关按钮居中【英文标题】:How to make the switch button center in dialog 【发布时间】:2016-03-07 18:37:14 【问题描述】:我想在对话框中切换按钮中心,但是失败了...
这是为什么?
Switch sw = new Switch(MainActivity.this);
sw.setTextOn("start");
sw.setTextOff("close");
sw.setGravity(Gravity.CENTER_HORIZONTAL);
AlertDialog.Builder myDialog = new AlertDialog.Builder(MainActivity.this);
myDialog.setTitle("title");
myDialog.setMessage("message");
myDialog.setView(sw);
【问题讨论】:
在对话框中使用布局。 这样是不是不能实现? 也许对你有帮助:android - Customizing Dialog using an Xml Layout 对视图使用LayoutParams
。
谢谢,我可以试试:)
【参考方案1】:
试试下面的代码
Switch sw = new Switch(MainActivity.this);
sw.setTextOn("start");
sw.setTextOff("close");
LinearLayout linearLayout = new LinearLayout(MainActivity.this);
linearLayout.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,ViewGroup.LayoutParams.MATCH_PARENT));
linearLayout.setGravity(Gravity.CENTER_HORIZONTAL);
linearLayout.addView(sw);
AlertDialog.Builder myDialog = new AlertDialog.Builder(MainActivity.this);
myDialog.setTitle("title");
myDialog.setMessage("message");
myDialog.setView(linearLayout);
myDialog.show();
【讨论】:
非常感谢,这正是我需要的方式【参考方案2】:请改用custom_layout
。
<LinearLayout
android:layout_
android:layout_
android:gravity="center">
<android.support.v7.widget.SwitchCompat
android:layout_
android:layout_/>
</LinearLayout>
使用LayoutInflater
来扩充对话框中的布局
View v = LayoutInflater.from(getActivity()).inflate(R.layout.custom_layout, null);
myDialog.setView(v);
【讨论】:
【参考方案3】:改用RelativeLayout,为SwitchButton设置android:centerInParent=true
【讨论】:
以上是关于如何使对话框中的开关按钮居中的主要内容,如果未能解决你的问题,请参考以下文章