我有这种风格:
<!-- 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创建一个弹出窗口。要知道要应用于弹出窗口的设计,库(即我构建的外部库)需要检查alfloatingToolbarStyle
属性的值。但是我不知道图书馆如何检查特定视图的属性alfloatingToolbarStyle(图书馆只收到参数:(Context context)
...但是我可以添加(View view)
如果它是&#39必要的
答案 0 :(得分:0)
请使用以下代码在EditText标签中定义样式...
android:theme="@style/BlueBGTextView"
答案 1 :(得分:0)
负责对话框的图书馆不知道您的自定义属性或自定义样式,因为它们不属于它。
当您调用库来创建对话框时,要使用的样式应作为参数传递,因此定义要使用的样式的逻辑应由调用库而不是库本身的代码处理。