如何在 java 中检索特定视图对象的自定义属性?
How to retrieve in java a custom attribute of a particular view object?
我有这个款式:
<!-- EditText on a blue background -->
<style name="BlueBGTextView" parent="@android:style/Widget.Material.Light.EditText">
<item name="alfloatingToolbarStyle">@style/alfloatingToolbarDarkStyle</item>
</style>
<!-- default EditText -->
<style name="AppThemeEditTextStyle" parent="@android:style/Widget.Material.Light.EditText">
</style>
<!-- default Theme -->
<style name="AppTheme" parent="@android:style/Theme.Material.Light.NoActionBar">
<item name="android:editTextStyle">@style/AppThemeEditTextStyle</item>
<item name="@attr/BlueBGTextViewStyle">@style/BlueBGTextView</item>
</style>
然后我通过构造函数在 java 视图 (EditText) 中即时创建:
public ALEditText(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes)
通过这种方式,我通过为它分配 defStyleAttr 来动态定义 EditText 的设计。
现在我有另一个库负责为 editText 创建弹出窗口 window。要了解应用于弹出库的设计(即我构建的外部库),需要检查 alfloatingToolbarStyle
属性的值。但我不知道库如何检查特定视图的属性 alfloatingToolbarStyle(库只接收参数:(Context context)
...但如果有必要,我也可以添加 (View view)
请使用以下代码在 EditText 标签中定义样式...
android:theme="@style/BlueBGTextView"
负责对话框的库不知道您的自定义属性或自定义样式,因为它们不属于它。
调用库创建对话框时,应将要使用的样式作为参数传递,因此定义要使用哪种样式的逻辑应由调用库的代码处理,而不是库本身。
我有这个款式:
<!-- EditText on a blue background -->
<style name="BlueBGTextView" parent="@android:style/Widget.Material.Light.EditText">
<item name="alfloatingToolbarStyle">@style/alfloatingToolbarDarkStyle</item>
</style>
<!-- default EditText -->
<style name="AppThemeEditTextStyle" parent="@android:style/Widget.Material.Light.EditText">
</style>
<!-- default Theme -->
<style name="AppTheme" parent="@android:style/Theme.Material.Light.NoActionBar">
<item name="android:editTextStyle">@style/AppThemeEditTextStyle</item>
<item name="@attr/BlueBGTextViewStyle">@style/BlueBGTextView</item>
</style>
然后我通过构造函数在 java 视图 (EditText) 中即时创建:
public ALEditText(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes)
通过这种方式,我通过为它分配 defStyleAttr 来动态定义 EditText 的设计。
现在我有另一个库负责为 editText 创建弹出窗口 window。要了解应用于弹出库的设计(即我构建的外部库),需要检查 alfloatingToolbarStyle
属性的值。但我不知道库如何检查特定视图的属性 alfloatingToolbarStyle(库只接收参数:(Context context)
...但如果有必要,我也可以添加 (View view)
请使用以下代码在 EditText 标签中定义样式...
android:theme="@style/BlueBGTextView"
负责对话框的库不知道您的自定义属性或自定义样式,因为它们不属于它。
调用库创建对话框时,应将要使用的样式作为参数传递,因此定义要使用哪种样式的逻辑应由调用库的代码处理,而不是库本身。