private lateinit var exampleBinding: ActivityExampleBinding //activity_example.xml layout
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
exampleBinding = ActivityExampleBinding.inflate(layoutInflater)
setContentView(exampleBinding.root)
//we will be able to access included layouts view like this
val includedView: View = exampleBinding.yourId.idOfIncludedView
//[...]
}
private lateinit var exampleBinding: ActivityExampleBinding //activity_example.xml layout
private lateinit var mergeBinding: MergeLayoutBinding //merge_layout.xml layout
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
exampleBinding = ActivityExampleBinding.inflate(layoutInflater)
//we need to bind the root layout with our binder for external layout
mergeBinding = MergeLayoutBinding.bind(exampleBinding.root)
setContentView(exampleBinding.root)
//we will be able to access included in merge layout views like this
val mergedView: View = mergeBinding.someView
//[...]
}
9条答案
按热度按时间tyg4sfes1#
如果:
1.包含与通用布局(不合并节点),我们需要分配ID的一部分,这种方式在绑定,我们将有机会包括子部分
在您的活动代码中这样做:
1.在外部布局中包含合并块。我们不能向它添加ID,因为合并块不是视图。假设我们有这样的永恒合并布局(merge_layout.xm):
要正确绑定这样的合并布局,我们需要:
在您的活动代码中:
fivyi3re2#
关于您的第一个问题,您可以获得包含的布局的视图绑定。
下面是一个示例
main_fragment.xml
文件:MainFragment.java
可以这样:现在您有两个绑定:一个对应于主布局,另一个对应于包含的布局。
7uzetpgm3#
如果您想绑定包含的布局,
用于活动
对于分片
确保如果您的主布局绑定父根是LinearLayout,则includedLayoutBinding父布局也是线性布局
vs91vp4v4#
假设我在
activity_main.xml
文件中包含一个布局,如下所示:假设我想改变它的可见性。我可以这样做:
wgxvkvu95#
在本例中,我忘记将
id
分配给include
标记现在,当你已经分配了
id
,你就可以得到绑定对象,tuwxkamq6#
按照步骤:-
private val binding : FragmentBinding
通过viewBinding(FragmentBinding::bind)
1.请确保在“onViewCreated(view:View,savedInstanceState:Bundle?)”
例如瓦尔binding 2 = binding.root.tool_bar_layout
现在访问您的包含布局,视图在这里。例如
2lpgd9687#
回答关于片段的第一个问题,假设您在MainFragment的xml文件中包含了一个“error_layout”。
现在在“error_layout”中,你有一个id为的按钮:“btn_try_again”。您想为该按钮设置一个单击侦听器。
这就是如何使用fragment_main.xml文件的绑定对象获取对“btn_try_again”的引用。
nc1teljy8#
使用数据绑定库。然后使用
<layout>
标记 Package XML布局activity_main.xml
toolbar.xml
MainActivity.kt
wkyowqbh9#
在include布局中,您必须创建一个Container布局,并在此处输入id。