【发布时间】:2019-10-08 04:55:12
【问题描述】:
我正在创建一个菜单片段,该片段的抽屉布局限制在左侧。我不断收到错误消息:DrawerLayout must be measured with MeasureSpec.EXACTLY。在网上阅读了大量信息后,我发现大多数答案都将高度和宽度设置为“匹配父级”。这样做之后,我仍然得到同样的错误。
class MenuFragment : BaseFragment() {
private lateinit var drawer: DrawerLayout
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
val view = inflater.inflate(R.layout.fragment_staff_menu_new, container, false)
drawer = view.findViewById(R.id.drawer_layout)
view.findViewById<NavigationView>(R.id.nav).setupWithNavController(findNavController())
val toggle = ActionBarDrawerToggle(requireActivity(), drawer, R.string.navigation_drawer_open, R.string.navigation_drawer_close)
drawer.addDrawerListener(toggle)
toggle.syncState()
return view
}
}
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:tools="http://schemas.android.com/tools">
<androidx.drawerlayout.widget.DrawerLayout
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:openDrawer="start">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<com.google.android.material.navigation.NavigationView
android:id="@+id/nav"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:fitsSystemWindows="true"/>
</LinearLayout>
</androidx.drawerlayout.widget.DrawerLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
【问题讨论】:
-
将
NavigationView添加为DrawerLayout的直系后代 -
我仍然遇到同样的问题。
标签: android kotlin material-design