Java 即使没有代码错误,编辑文本也不会显示在我的设备上
如果我能在这方面得到一些帮助,我会非常高兴,基本上我是在youtube上学习一些教程,因为我是android的完全初学者,而不是java tho。基本上代码工作正常,没有可见的错误,但当我运行它时,它不会被显示。需要注意的是,用户界面是用java设计的,而不是XML 代码: 此外,我的btn实际上正在显示,我感兴趣的是为什么我的用户名EditText没有显示,请帮助更改为-Java 即使没有代码错误,编辑文本也不会显示在我的设备上,java,android,android-studio,Java,Android,Android Studio,如果我能在这方面得到一些帮助,我会非常高兴,基本上我是在youtube上学习一些教程,因为我是android的完全初学者,而不是java tho。基本上代码工作正常,没有可见的错误,但当我运行它时,它不会被显示。需要注意的是,用户界面是用java设计的,而不是XML 代码: 此外,我的btn实际上正在显示,我感兴趣的是为什么我的用户名EditText没有显示,请帮助更改为- drawUsername = new RelativeLayout.LayoutParams( R
drawUsername = new RelativeLayout.LayoutParams(
RelativeLayout.LayoutParams.WRAP_CONTENT,
RelativeLayout.LayoutParams.WRAP_CONTENT
);
为什么<代码>水平居中或垂直居中是规则,您需要至少设置一些要绘制的宽度和高度。这是您为按钮所做的操作,但您没有为编辑文本所做的操作发生的情况是由于您的抽屉名称的RelativeLayout.LayoutParams 如果查看已创建的RelativeLayout.LayoutParams:
RelativeLayout.LayoutParams drawBtn = new RelativeLayout.LayoutParams(
RelativeLayout.LayoutParams.WRAP_CONTENT,
RelativeLayout.LayoutParams.WRAP_CONTENT);
drawBtn.addRule(RelativeLayout.CENTER_HORIZONTAL);
drawBtn.addRule(RelativeLayout.CENTER_VERTICAL);
RelativeLayout.LayoutParams drawUsername = new RelativeLayout.LayoutParams(
RelativeLayout.CENTER_HORIZONTAL,
RelativeLayout.CENTER_VERTICAL);
drawUsername.addRule(RelativeLayout.ABOVE, btn.getId());
drawUsername.addRule(RelativeLayout.CENTER_HORIZONTAL);
注意到区别了吗?
LayoutParams构造函数接受一个int值:
- 匹配父项=-1
- 包装内容=-2
- 任何其他int值
解决方法是用WRAP_CONTENT替换drawUsername LayoutParams构造函数。首先,您的答案给人的印象是,尽管其int值太小,但使用“水平中心”是有效的。“水平中心”或“垂直中心”都不是此参数的有效参数。这里唯一的巧合是,CENTER_VERTICAL和CENTER_VERTICAL都是整数,意外地不会给出任何类型转换或无效参数错误。谢谢你的快速回复,这也帮助了我@AmitK.Saha肯定不喜欢你从“首先”开始的方式。但是没有,我的回答没有给人这样的印象,即水平中心是有效的。相反,它只是简单地说,任何整数值都可以使用,无论是普通整数还是常量整数。我还解释了为什么WRAP和MATCH不同于其他整数值,以及如果传入另一个整数值会发生什么。与其说水平居中并不意味着这一点,更重要的是让他们知道这是可能的,但这样做会有后果。“他们将被视为常数。”杰基,如果我的评论不礼貌,我诚挚的道歉。再次抱歉,太棒了!感谢您的快速帮助!这正是问题所在,我没有注意到我没有在drawUsername构造函数中包装w和h
RelativeLayout.LayoutParams drawBtn = new RelativeLayout.LayoutParams(
RelativeLayout.LayoutParams.WRAP_CONTENT,
RelativeLayout.LayoutParams.WRAP_CONTENT);
drawBtn.addRule(RelativeLayout.CENTER_HORIZONTAL);
drawBtn.addRule(RelativeLayout.CENTER_VERTICAL);
RelativeLayout.LayoutParams drawUsername = new RelativeLayout.LayoutParams(
RelativeLayout.CENTER_HORIZONTAL,
RelativeLayout.CENTER_VERTICAL);
drawUsername.addRule(RelativeLayout.ABOVE, btn.getId());
drawUsername.addRule(RelativeLayout.CENTER_HORIZONTAL);