大佬教程收集整理的这篇文章主要介绍了无法在 Fragment 中启动 contentView,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试使用约束布局创建一个接管整个页面的按钮。但是,屏幕上什么也没有显示,我不知道该怎么办了。有什么建议么?我正在尝试对 Activity.setContentVIEw 使用 Fragment 的等效项,但似乎我无法使其工作。
class Login : Fragment(R.layout.fragment_login) {
lateinit var cl: ConsTraintLayout
lateinit var cs: ConsTraintSet
lateinit var btn: button
@Suppresslint("resourceType")
overrIDe fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceStatE)
cl = ConsTraintLayout(requireContext())
btn = button(requireContext())
btn.ID = 5
var lp1: ConsTraintLayout.LayoutParams =
ConsTraintLayout.LayoutParams(
VIEwGroup.LayoutParams.MATCH_PARENT,VIEwGroup.LayoutParams.MATCH_PARENT
)
cl.layoutParams = lp1
var lp2: ConsTraintLayout.LayoutParams =
ConsTraintLayout.LayoutParams(0,0)
btn.layoutParams = lp2
btn.setText("bag pula")
cl.addVIEw(btn)
cs = ConsTraintSet()
cs.clone(cl)
cs.connect(btn.ID,ConsTraintSet.left,ConsTraintSet.PARENT_ID,ConsTraintSet.left)
cs.connect(btn.ID,ConsTraintSet.RIGHT,ConsTraintSet.RIGHT)
cs.connect(btn.ID,ConsTraintSet.top,ConsTraintSet.top)
cs.connect(btn.ID,ConsTraintSet.bottOM,ConsTraintSet.bottOM)
cs.applyTo(cl)
}
@Suppresslint("resourceType")
@requiresAPI(Build.VERSION_CODEs.LolliPOp)
overrIDe fun onCreateVIEw(
inflater: LayoutInflater,container: VIEwGroup?,savedInstanceState: Bundle?
): VIEw? {
return inflater!!.inflate(R.layout.fragment_login,container,falsE)
}
companion object {
@JvmStatic
fun newInstance(param1: String,param2: String) =
Login().apply {
arguments = Bundle().apply {
putString(ARG_ParaM1,param1)
putString(ARG_ParaM2,param2)
}
}
}
}
How it should look
How it is
我会建议一种不同但简单的方法
在您的 fragment.xml 文件中创建一个按钮来接管整个片段(使用匹配父级作为高度和宽度),然后在您的 Activity 中扩展该片段。 这应该是您的问题所建议的解决方案。
,您创建了 ConsTraintLayout 并向其添加按钮,但您永远不会将 ConsTraintLayout 添加到屏幕上的布局并在 onCreateView()
中创建。您可以像添加按钮一样添加它。通过为每个视图生成新的布局参数,您避免了常见错误。
由于 onCreate()
在 onCreateView()
之前运行,您需要将 ConsTraintLayout 的创建延迟到 onCreateView()
(我的建议)或将其保存在 { {1}} 以供稍后在 onCreate()
中参考。 onCreateView()
中的布局膨胀后,您可以向其中添加 ConsTraintLayout。
那应该会让你重新开始。我建议您使用 Android studio 中提供的 Layout Inspector 来查看您在模拟器或真实设备上的布局构成。 Layout Inspector 通常可以提供有关正在(或未进行)什么的线索。
旁注:生成视图 ID 时,请执行以下操作:
onCreateView()
而不是硬编码一个常量。
以上是大佬教程为你收集整理的无法在 Fragment 中启动 contentView全部内容,希望文章能够帮你解决无法在 Fragment 中启动 contentView所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。