所以我有这个MainLayout,它现在仅由一个浮动动作按钮(FAB)组成:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/lel"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.design.widget.FloatingActionButton
android:id="@+id/floatingActionButton2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentEnd="true"
android:layout_marginBottom="16dp"
android:layout_marginEnd="16dp"
android:clickable="true"
android:src="@drawable/ic_add_black_24dp" />
</RelativeLayout>
我正在使用this library创建类似于this的treeView
我在MainActivity中创建AndroidTreeView对象:
override fun onCreate(savedInstanceState: Bundle?) {
// ...
val treeView = AndroidTreeView(this, root) // 'this' is the context
// ...
setContentView(treeView.view)
}
这显然只会显示treeView的内容,而不显示mainLayout。
如何同时显示TreeView和Button /在MainLayout顶部呈现TreeView?
我尝试使用addView将FAB添加到视图中
val view = treeView.view as ViewGroup
view.addView(floatingActionButton2)
但这会导致java.lang.IllegalStateException: ScrollView can host only one direct child
在一个示例项目中,TreeView的作者为此使用了 Fragments 。但这是否真的有必要?
答案 0 :(得分:0)
我通过在rootLayout顶部填充MainLayout解决了这个问题。之前我尝试过类似的解决方案,但我可能使用的是“ R.id.content”而不是“ android.R.id.content”。
此代码属于MainActivity的onCreate方法的底部:
override fun onCreate(savedInstanceState: Bundle?) {
// ...
setContentView(treeView.view)
val rootLayout = findViewById<FrameLayout>(android.R.id.content)
View.inflate(this, R.layout.main_layout, rootLayout)
}