inyfee
V2EX  ›  Android

kotlin toolbar 无法显示返回键?

  •  
  •   inyfee · Dec 17, 2017 · 13878 views
    This topic created in 3153 days ago, the information mentioned may be changed or developed.

    正在学习 kotlin,参考的是 kotlin for android develpoer 官方代码 并且自己写着一个 Demo,发现跑起来总是无法调出返回键,思考了一天搜了一天没有得到答案。只好来求助,我把代码传上了码云,请大家帮我看看,问题出在哪里?

    点击查看我的代码

    我的 demo 截图

    demo

    官方示例 demo

    10 replies    2017-12-19 18:59:14 +08:00
    Eateeer
        1
    Eateeer  
       Dec 17, 2017   ❤️ 1
    你把 activity_add_todo.xml 文件第 9 行的 id 去掉试试?
    Eateeer
        2
    Eateeer  
       Dec 17, 2017
    或者你也可以把上述文件第 9 行的 android:id="@+id/include" 改为 android:id="@+id/toolbar"。不过这种修改方式不推荐。
    inyfee
        3
    inyfee  
    OP
       Dec 17, 2017
    @wl9739788 #1 原来是这么简单的问题。真是太感谢了。这是不是 ID 冲突导致的问题?
    Eateeer
        4
    Eateeer  
       Dec 18, 2017   ❤️ 4
    @yeelone 问题原因可能不是你想的那样。

    你的代码里面,是希望拿到 <include/> 引用的布局下的 toolbar 控件,并对这个 toolbar 控件设置一些属性。

    当你使用 <include/> 这个标签时,如果没有对 <include/> 添加 id 属性,那么,你是可以在 Activity 中直接获取 include 引用布局里面的控件。我提出的第一种解决方法就是基于此原因。删掉 <include/> 的 id 属性,在你的 AddTodoActivity 类里的 setSupportActionBar(toolbar) 这个方法中,就能找到 toolbar 这个控件。

    当你设置了 <include/> 的 id 属性后,include 的 id 值将会传递并赋值给引用布局的根控件 (root view)。在你的代码中,<include/> 的 id 值是 include,因此 <include/> 引用的布局里面,Toolbar 的 id 不再是 toolbar,而是 include。这时候有两种解决方法:

    1. 改 xml 代码。将 <include/> 标签 android:id="@+id/include" 改为 android:id="@+id/toolbar",也就是我提出的第二种解决方法。这样你的 Activity 代码中的 setSupportActionBar(toolbar) 就能生效。

    2. 改 Activity 代码。将 setSupportActionBar(toolbar) 改为 setSupportActionBar(include as Toolbar?)。这样也是可行的。
    inyfee
        5
    inyfee  
    OP
       Dec 18, 2017 via iPhone
    @wl9739788 非常感谢你的回答,这下我就明白了
    gonethen
        6
    gonethen  
       Dec 18, 2017
    我也想学 kotlin 开发安卓,求大神带
    youngxhui
        7
    youngxhui  
       Dec 18, 2017 via Android
    这个应该不是 kotlin 的锅吧
    inyfee
        8
    inyfee  
    OP
       Dec 18, 2017
    @youngxhui #7 没人说是 kotlin 的锅吧?
    youngxhui
        9
    youngxhui  
       Dec 18, 2017 via Android
    @yeelone 好像也是😂
    kwanzaa
        10
    kwanzaa  
       Dec 19, 2017
    @gonethen 官方有示例
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5347 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 47ms · UTC 05:59 · PVG 13:59 · LAX 22:59 · JFK 01:59
    ♥ Do have faith in what you're doing.