Android 在attrs.xml添加属性时出现 Found item Attr/****** more than one time

news/2024/10/18 23:05:02/
xmlns="http://www.w3.org/2000/svg" style="display: none;">

Android 在attrs.xml添加属性时出现 Found item Attr/****** more than one time

  • 问题描述
  • 解决办法
    • 方式一
    • 方式二
  • 小结

问题描述

在Android应用开发过程中,经常需要自定义控件,并且定义控件的属性,方便灵活的修改控件的显示样式,提高代码的可重用性和拓展性。但是在attrs.xml文件定义控件的属性,编译工程时报错了。

Found item Attr/axis_x_min more than one time

attrs.xml 文件中有多个同名条目时,通常会出现Found item Attr/****** more than one time错误消息。 attrs.xml 中的每个属性名称必须是唯一的。其实就是你的attrs.xml中有同名的属性(比如line_number)。

xml"><?xml version="1.0" encoding="utf-8"?>
<resources><declare-styleable name="ChartView1"><attr name="axis_left_min" format="float"/><attr name="axis_left_max" format="float"/><attr name="axis_right_min" format="float"/><attr name="axis_right_max" format="float"/><attr name="line_number" format="integer"/></declare-styleable><declare-styleable name="ChartView2"><attr name="axis_x_min" format="float"/><attr name="axis_x_max" format="float"/><attr name="axis_y_min" format="float"/><attr name="axis_y_max" format="float"/><attr name="line_number" format="integer"/></declare-styleable></resources>

在这里插入图片描述

解决办法

方式一

修改同名的属性,使不同控件的属性名不一样。将ChartView1控件的line_number属性改名为line_number_chart1ChartView2控件的line_number属性改名为line_number_chart2,这样就保证了属性名的唯一。

xml"><?xml version="1.0" encoding="utf-8"?>
<resources><declare-styleable name="ChartView1"><attr name="axis_left_min" format="float"/><attr name="axis_left_max" format="float"/><attr name="axis_right_min" format="float"/><attr name="axis_right_max" format="float"/><attr name="line_number_chart1" format="integer"/></declare-styleable><declare-styleable name="ChartView2"><attr name="axis_x_min" format="float"/><attr name="axis_x_max" format="float"/><attr name="axis_y_min" format="float"/><attr name="axis_y_max" format="float"/><attr name="line_number_chart_2" format="integer"/></declare-styleable></resources>

方式二

将相同的属性定义到declare-styleable标签外面,内部只声明引用,这样不同控件就可以重复使用了。

xml"><?xml version="1.0" encoding="utf-8"?>
<resources><attr name="line_number" format="integer"/><declare-styleable name="ChartView1"><attr name="axis_left_min" format="float"/><attr name="axis_left_max" format="float"/><attr name="axis_right_min" format="float"/><attr name="axis_right_max" format="float"/><attr name="line_number" /></declare-styleable><declare-styleable name="ChartView2"><attr name="axis_x_min" format="float"/><attr name="axis_x_max" format="float"/><attr name="axis_y_min" format="float"/><attr name="axis_y_max" format="float"/><attr name="line_number" /></declare-styleable></resources>

小结

通过上述两种方式,我们都可以解决Found item Attr/****** more than one time的问题,相对而言,更推荐方式二的解决办法。方式二可以提高同名属性的重复性和利用率。


http://www.ppmy.cn/news/1443334.html

相关文章

基于onbar的备份与恢复实验

通过本文的备份恢复实验&#xff0c;我们可以深入了解onbar的使用方法和原理&#xff0c;包括如何进行完整备份、增量备份以及如何利用备份文件进行完全恢复与基于时间点的恢复。 1. 环境准备 1.1 配置存储管理器PSM的共享库 SinoDB 内置了一个存储管理器PSM&#xff0c;该存…

regular state lattice in unstructured environment(结合了全局采样和图搜索的思想)

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 TODO:写完再整理 文章目录 系列文章目录前言regular state lattice in unstructured environment(结合了全局采样和图搜索的思想)一、regular state lattice的介绍1.lattice是网格化采样的一…

38-1 防火墙了解

一、防火墙的概念: 防火墙(Firewall),也称防护墙,是由Check Point创立者Gil Shwed于1993年发明并引入国际互联网(US5606668 [A]1993-12-15)。它是一种位于内部网络与外部网络之间的网络安全系统,是一项信息安全的防护系统,依照特定的规则,允许或是限制传输的数据通过。…

取水新篇章:3D可视化技术引领水资源管理革命

在科技飞速发展的今天&#xff0c;我们对世界的探索越来越深入&#xff0c;从微观粒子到宏观宇宙&#xff0c;从深海到高山&#xff0c;科技的力量让我们能够以前所未有的方式了解这个世界。 取水过程3D可视化&#xff0c;就是通过先进的3D建模技术&#xff0c;将取水过程以立体…

区块链基础——区块链应用架构概览

目录 区块链应用架构概览&#xff1a; 1、区块链技术回顾 1.1、以太坊结点结构 1.2、多种应用场景 2、区块链应用架构概览 2.1、传统的Web2 应用程序架构 2.2、Web3 应用程序架构——最简架构 2.3、Web3 应用程序架构——前端web3.js ether.js 2.4、Web3 应用程序架构—…

概率路线图probabilistic Roadmap搜索(结合了全局采样和图搜索的的思想)

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 TODO:写完再整理 文章目录 系列文章目录前言概率路线图probabilistic Roadmap搜索(结合了全局采样和图搜索的的思想)(1)PRM算法泛化过程1.概率路线图2.采样构建阶段3.概率图搜索阶段4.代码…

Linux学习(一)

笔者给各位读者的建议是每天背 30 个在电脑上看到的不认识的单词 1) 文件系统 提供计算机存储信息的结构&#xff0c;信息存储在文件中&#xff0c;文件主要存储在计算机的内部硬盘里&#xff0c;在目录的分层结构中组织文件。文件系统为操作系统提供了组织管理数据的方式。 …

NGINX发布动态页面的方法

一、建立 [rootserver100 html]# vim index.php [rootserver100 html]# pwd /usr/share/nginx/html 二、下载PHP文件 [rootserver100 conf.d]# dnf install php.x86_64 -y 正在更新 Subscription Management 软件仓库。 无法读取客户身份 本系统尚未在权利服务器中注册。可…