【问题标题】:Add a ListView with NavigationDrawer使用 NavigationDrawer 添加 ListView
【发布时间】:2016-12-12 16:05:52
【问题描述】:

我正在开发一个应用程序,我想在 content_main.xml 文件中添加一个导航抽屉和一个 ListView。
当我在 content_main.xml 中添加 ListView 或 Fragment 时,它会引发异常。例外是InflateException
这是我想做的事情的描述。

我知道这是一个非常简短的描述,但我没有找到更好的描述方式。
如果你能帮我解决这个问题,请帮帮我。

这里是日志

12-12 11:17:26.923 29725-29725/com.antzion.salmanali.lockapp     E/AndroidRuntime: FATAL EXCEPTION: main
   Process: com.antzion.salmanali.lockapp, PID: 29725
   android.view.InflateException: Binary XML file line #17: Binary XML     file line #17: Error inflating class android.support.design.internal.NavigationMenuItemView
   at android.view.LayoutInflater.inflate(LayoutInflater.java:539)
   at android.view.LayoutInflater.inflate(LayoutInflater.java:423)
   at android.support.design.internal.NavigationMenuPresenter$NormalViewHolder.<init>(NavigationMenuPresenter.java:288)
   at android.support.design.internal.NavigationMenuPresenter$NavigationMenuAdapter.onCreateViewHolder(NavigationMenuPresenter.java:388)
   at android.support.design.internal.NavigationMenuPresenter$NavigationMenuAdapter.onCreateViewHolder(NavigationMenuPresenter.java:338)
   at android.support.v7.widget.RecyclerView$Adapter.createViewHolder(RecyclerView.java:5836)
   at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:5060)
   at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:4970)
   at android.support.v7.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:2029)
   at android.support.v7.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1414)
   at android.support.v7.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1377)
   at android.support.v7.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:578)
   at android.support.v7.widget.RecyclerView.dispatchLayoutStep2(RecyclerView.java:3315)
   at android.support.v7.widget.RecyclerView.dispatchLayout(RecyclerView.java:3124)
   at android.support.v7.widget.RecyclerView.onLayout(RecyclerView.java:3568)
   at android.view.View.layout(View.java:16630)
   at android.view.ViewGroup.layout(ViewGroup.java:5437)
   at android.widget.FrameLayout.layoutChildren(FrameLayout.java:336)
   at android.widget.FrameLayout.onLayout(FrameLayout.java:273)
   at android.view.View.layout(View.java:16630)
   at android.view.ViewGroup.layout(ViewGroup.java:5437)
   at android.support.v4.widget.DrawerLayout.onLayout(DrawerLayout.java:1221)
   at android.view.View.layout(View.java:16630)
   at android.view.ViewGroup.layout(ViewGroup.java:5437)
   at android.widget.FrameLayout.layoutChildren(FrameLayout.java:336)
   at android.widget.FrameLayout.onLayout(FrameLayout.java:273)
   at android.view.View.layout(View.java:16630)
   at android.view.ViewGroup.layout(ViewGroup.java:5437)
   at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1743)
   at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1586)
   at android.widget.LinearLayout.onLayout(LinearLayout.java:1495)
   at android.view.View.layout(View.java:16630)
   at android.view.ViewGroup.layout(ViewGroup.java:5437)
   at android.widget.FrameLayout.layoutChildren(FrameLayout.java:336)
   at android.widget.FrameLayout.onLayout(FrameLayout.java:273)
   at android.view.View.layout(View.java:16630)
   at android.view.ViewGroup.layout(ViewGroup.java:5437)
   at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1743)
   at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1586)
   at android.widget.LinearLayout.onLayout(LinearLayout.java:1495)
   at android.view.View.layout(View.java:16630)
   at android.view.ViewGroup.layout(ViewGroup.java:5437)
   at android.widget.FrameLayout.layoutChildren(FrameLayout.java:336)
   at android.widget.FrameLayout.onLayout(FrameLayout.java:273)
   at com.android.internal.policy.PhoneWindow$DecorView.onLayout(PhoneWindow.java:2678)
   at android.view.View.layout(View.java:16630)
   at android.view.ViewGroup.layout(ViewGroup.java:5437)
   at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2171)
   at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1931)
   at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1107)
   at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6013)
   at android.view.Choreographer$CallbackRecord.run(Choreographer.java:858)
   at android.view.Choreographer.doCallbacks(Choreographer.java:670)
   at android.view.Choreographer.doFrame(Choreographer.java:606)
at android.view.Ch

希望对你有帮助。

【问题讨论】:

  • 如果你能显示完整的 logcat 将会很有用。 “InflateException”不是错误。阅读所有写着“原因”的行
  • @cricket_007 我发现当我从 listView 中删除 id 时它工作得非常好,但是当我写 android:id="@+id/listView" 行时它给出了异常
  • 你试过android:id="@android:id/list"吗?
  • @cricket_007 成功了。错误是什么?为什么这个工作有效而另一个没有?
  • 也谢谢你。

标签: android listview navigation-drawer


【解决方案1】:

只是为了让 cmets 找到答案。

使用android:id="@android:id/list",这是大多数列表相关视图的内置系统列表ID。

您可以像往常一样获得对它的引用,但 ID 与 R.id 不同。

listView = (ListView) findViewById(android.R.id.list);

【讨论】:

  • 好的,谢谢。这解决了我的问题。非常感谢。
猜你喜欢
  • 1970-01-01
  • 2015-09-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-14
  • 1970-01-01
  • 2015-03-07
  • 2020-05-16
相关资源
最近更新 更多