Careless Me
我在百度知道上提了一個(gè)問題:
如圖我在menu.xml里試圖加一個(gè)search的按鈕,但我從網(wǎng)頁上復(fù)制了圖中第二個(gè)item里的代碼,運(yùn)行的時(shí)候,這個(gè)item卻總是出現(xiàn)在overflow(下拉菜單)里面,不出現(xiàn)在action bar。而我用手打出第一個(gè)item里的代碼之后,卻可以在action bar上顯示。這是為什么?兩段代碼完全一樣啊。
這兩段代碼我調(diào)了很久。最后看來看去,發(fā)現(xiàn)這個(gè)段代碼并不是「完全一樣」。
showAsAction屬性之前的命名空間,一個(gè)是android,一個(gè)是app。結(jié)果就導(dǎo)致沒有使用命名空間的下面的item無效。
那為什么其他的android打頭的代碼有效?來看看完整的menu頭:
<menu 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"tools:context="com.larry.projecty.MainActivity" >android對(duì)應(yīng)的空間是/apk/res/android,而app對(duì)應(yīng)/apk/res-auto.而android developers上,也就我復(fù)制的那段代碼的來源,只用了這一個(gè)命名空間:
<menu xmlns:android="http://schemas.android.com/apk/res/android">我TM已經(jīng)糊涂了。I don't get the fuck.好吧,我就用app做命名空間好了。草。
?
草。搞這些SB代碼,這個(gè)JB細(xì)節(jié)搞了一晚上,結(jié)果這只是一堆錯(cuò)誤中的一個(gè)。想弄懂所有一切,哪有那么多精力和時(shí)間??真JB累。
?
干。
?----------------------------------------------
冷靜了一會(huì)兒,想起來原來為了支持2.x系統(tǒng)而用自己的命名空間。
查了一下,網(wǎng)上說:
「這是告訴系統(tǒng),showAsAction使用library的XML attributes。」
也就是說在用其他的library的時(shí)候要用自己的命名空間。
此外還有:
yourapp:actionViewClass="android.support.v7.widget.SearchView"
yourapp:actionProviderClass="android.support.v7.widget.ShareActionProvider"
?
我操,一箭雙雕,正好解決了為什么得不到search view的問題了。
除了在xml里改命名空間,在MainActivity.java里也要改import哦,改成:
import android.support.v7.widget.SearchView;?
操,好高興。
可憐的程序狗啊。
?
參考:
http://blog.csdn.net/tianjf0514/article/details/13278539
轉(zhuǎn)載于:https://www.cnblogs.com/larrylawrence/p/3722334.html
總結(jié)
以上是生活随笔為你收集整理的Careless Me的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Windows界面编程-背景图片、透明特
- 下一篇: 常用功能函数