今天在复写themes.xml文件中panelMenuListTheme的属性提示找不到该属性,而复写panelBackground属性成功。两相比较一个在public.xml文件中有id,一个没有。网上查阅的资料public.xml文件应该是自动生成的,也可以手动修改。不过手动修改会有诸如不兼容、须修改多个文件的问题。想请教大婶们,如何来自动生成public.xml文件。自动生成的方法说的比较模糊(正常添加完资源后,执行make update-api函数,系统更新res/values/public.xml文件)。这个正常添加资源应该怎么添加,系统添加的panelMenuListTheme缺少哪个部分导致无法在public.xml文件中生成id呢?android androidpublic.xml

解决方案 »

  1.   

    楼主是这样的:如果你有资源需要公开让应用使用的话,就需要在public.xml里面添加,而且要指定一个整数id值,可以是手动输入,比如:
    <public type="style" name="Theme.Wallpaper.NoTitleBar.Fullscreen" id="0x01030060" />
    而且我一般也是手动加入public.xml中的,并没有产生像你所说的诸如不兼容、须修改多个文件的问题,只要你这个id使用的段是指定的段就行,比如type="style"类型的不要用到其他如type="string"类型的段int值就行,每种资源都规定了指定的段值,不要越界。
    make update-api这个命令一般是用于更新框架里面新增接口函数。
      

  2.   

    大致应该明白是怎么会事,照1楼所说的,我要用的那个应该是
      <public type="attr" name="panelMenuListTheme" id="***" />
    该id区间是0x01010000 --0x0101ffff,上边*号应该填入attr类型最后一个id增1即可
    但是我有个担心是,在我占用那个id后,会不会有其他修改,比如系统的更新,或者添加其他资源引起id冲突。也就是说,public.xml文件是不是都是手动修改的。因为android中接触的资源id都是通过系统自己生成的,如果public.xml存在自动生成id的情况,就可能会与我指定id相互冲突。