如何通过xml为自定义视图传递gravity属性?

时间:2014-11-20 18:54:21

标签: android android-xml android-custom-view

我试图弄清楚如何通过xml传递android:gravity以获得自定义视图。

此处发布的解决方案(https://stackoverflow.com/a/3441986/413254)表示要将android:gravity属性添加到其他attr's。

              

当我这样做时,我最后会发出警告:

  

/Users/greg/dev/company/mobile/my_app/app/src/main/res/values/colors.xml

     

错误:属性" android:gravity"已经定义了   错误:任务':app:processStagingDebugResources'执行失败。

     
    

com.android.ide.common.internal.LoggedErrorException:无法运行命令:         /Users/greg/dev/android-sdk/sdk/build-tools/21.0.2/aapt package -f --no-crunch -I / Users / greg / dev / android-sdk / sdk / platforms / android-21 /android.jar -M     /Users/greg/dev/company/mobile/myapp/app/build/intermediates/manifests/full/staging/debug/AndroidManifest.xml     -S / Users / greg / dev / company / mobile / myapp / app / build / intermediates / res / staging / debug     -A / Users / greg / dev / company / mobile / myapp / app / build / intermediates / assets / staging / debug     -m -J / Users / greg / dev / company / mobile / myapp / app / build / generated / source / r / staging / debug     -F /Users/greg/dev/company/mobile/myapp/app/build/intermediates/res/resources-staging-debug.ap_     --debug-mode --custom-package com.company.vendorreviews -0 apk --output-text-symbols / Users / greg / dev / company / mobile / myapp / app / build / intermediates / symbols / staging / debug     错误代码:         1输出:         /Users/greg/dev/company/mobile/myapp/app/build/intermediates/res/staging/debug/values/values.xml:165:     错误:属性" android:gravity"已定义

  

我的colors.xml文件?

values.xml的第165行是

<declare-styleable name="StackedTextView">
    <attr format="integer" name="android:gravity"/>
    <attr format="string" name="line1"/>
    <attr format="string" name="line2"/>
    <attr format="dimension" name="line1_textSize"/>
    <attr format="dimension" name="line2_textSize"/>
</declare-styleable>

多个组中出现多次android:gravity。主题,FlowLayout(包含库),LinearLayoutCompat等

编辑:更新了错误消息。

1 个答案:

答案 0 :(得分:5)

写作:

<attr format="integer" name="android:gravity"/>

您正在使用整数格式引入新属性android:gravity,当然android:gravity已在系统中定义,因此您需要将其更改为:

<attr name="android:gravity"/>