繁体   English   中英

如何以编程方式移至中心EditText?

[英]How can I programmatically move to center EditText?

如何使用.AddRule (RelativeLayout.CENTER_VERTICAL);以编程方式将密码移到中心 .AddRule (RelativeLayout.CENTER_VERTICAL);

在此处输入图片说明

LinearLayout PO = (LinearLayout)RV .findViewById(R.id.LL1);

                EditText ET = new EditText(getActivity());
                ET.setId(1);
                ET.setHint("Your name");
                ET.setInputType(0x00000061);
                ET.setLayoutParams(new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.FILL_PARENT, RelativeLayout.LayoutParams.WRAP_CONTENT));
                ET.setPadding(40,20,40,20);
                ET.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL);
                //ET.addRule(RelativeLayout.CENTER_VERTICAL);
                PO.addView(ET);

.addRule点亮。

您可以使用gravity属性,但是如果您想在视图中添加更多组件,则这是没有用的。 您也可以使用RelativeLayout而不是LinearLayout(您需要更改布局),这可以帮助您完成类似的工作。

XML:

  <LinearLayout
        android:id="@+id/xxx"
        android:gravity="center_vertical">

或使用代码:

RelativeLayout layout = (RelativeLayout) findViewById(R.id.layout);
layout.setGravity(Gravity.CENTER_VERTICAL);

要么

RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams
      ((int) LayoutParams.WRAP_CONTENT, (int) LayoutParams.WRAP_CONTENT);
params.addRule(RelativeLayout.CENTER_VERTICAL);
xyzView.setLayoutParams(params);

在以编程方式执行此操作之前,最好先尝试在layout.xml中构建UI,然后再以编程方式进行操作。

您的layout.xml中应该有相对的布局。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
...

您的edittext应该在相对布局内部,以便将RelativeLayout.LayoutParams应用于它。 您的代码将如下所示:

RelativeLayout PO = (RelativeLayout)RV .findViewById(R.id.RL1);
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams
          ((int) LayoutParams.WRAP_CONTENT, (int) LayoutParams.WRAP_CONTENT);
params.addRule(RelativeLayout.CENTER_VERTICAL);
ET.setLayoutParams(params);

另外,您可能会发现以下链接中的最后一个答案很有帮助: http : //www.coderanch.com/t/505316/Android/Mobile/put-layout-middle-screen

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM