android - (Vibrating TextView)为自定义 View 配置属性

标签 android

我刚刚创建了类 VibratingTextView。我打算创建一个完整的小部件库,所以我想以正确的方式进行。

此 View 的 xml:

<sherif.android.textview.VibratingTextView  
    android:id="@+id/textView2"  
    android:layout_width="wrap_content"  
    android:textAppearance="?android:attr/textAppearanceLarge"  
    android:layout_height="wrap_content"  
    android:orientation="horizontal"  
    android:text="outToRight" >  
</sherif.android.textview.VibratingTextView> 

注意它有 android:orientationandroid:text。它接受 TextViewLinearLayout 的属性。该类本身扩展了 LinearLayout

我的问题出在eclipse的xml编辑器上。当用户键入 android: 时,eclipse 的智能感知会为用户提供此命名空间中可用的选项。

在我的例子中,它给出了 LinearLayout 的属性,因此,例如,TextTextSize 不会出现。

有没有办法让它们出现(使用 android 命名空间)?

如果不是,我是否应该使用我定义的属性创建自己的命名空间?或者有没有办法导入 android 的属性并将它们放入 sherif 的属性中?

请记住,我正在使用传递的属性在我的类的构造函数中创建一个 TextView。它工作正常,并且 TextView 的所有属性都已正确设置。

由于我将创建许多其他小部件,我可能需要自己的命名空间,但最佳做法是什么?例如,我想创建 alwaysVibrate 属性。它类似于 sherif:alwaysVibrate="true"。我希望我的库是可包含的,并且让 eclipse 显示我的命名空间的属性:我使用通常的方式使用 attr.xml?

最佳答案

我最近遇到了完全相同的问题。这是我在 attrs.xml

中的自定义属性声明
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <declare-styleable name="NumberPicker">
        <attr name="rangeStart" format="integer|reference" />
        <attr name="rangeEnd" format="integer|reference" />
        <attr name="speed" format="integer|reference" />
        <attr name="current" format="integer|reference" />
        <attr name="android:orientation" />
    </declare-styleable>
</resources>

您可以重用 android 属性,但不能教它们建议不同的值。事实上,您甚至无法教 eclipse 推荐您的自定义属性定义(至少在发帖日期,我希望将来能看到该功能)。

关于定义自定义属性你想知道的其他一切都在这个问题中: Declaring a custom android UI element using XML .

关于android - (Vibrating TextView)为自定义 View 配置属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7512124/

相关文章:

android - 为什么使用 Binding Interface 会导致 Class Not Found 异常?

android - 在 Kotlin 中使用 FirebaseListAdapter

android - Azure DevOps Gradle "Java heap space"错误

android - OAuth Twitter 在 iPhone 和安卓上只有 Consumer Key(不使用 Consumer Secret)

android - 如何升级应用程序?

c# - 从 C# TCP 服务器到 Android 设备的图像传输

java - 任务“app :transformClassesWithInstantRunForDebug”执行失败

android - 重新安装Android SDK时出错

android - 为什么我的 ListView/Dialog 不透明?

java - 为什么我的主要函数在声明时没有在我的 Activity 文件中被选取?