Java 如何继承Android样式属性?
我最近尝试在我的android应用程序中采用一种基于风格的方法。然而,我陷入了这个困境 在我的布局文件中,我最初有以下内容:Java 如何继承Android样式属性?,java,android,styles,Java,Android,Styles,我最近尝试在我的android应用程序中采用一种基于风格的方法。然而,我陷入了这个困境 在我的布局文件中,我最初有以下内容: <LinearLayout android:id="@+id/layout_event_buttons" style="?android:attr/buttonBarStyle" android:layout_width="wrap_content" android:layout_height
<LinearLayout
android:id="@+id/layout_event_buttons"
style="?android:attr/buttonBarStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:orientation="horizontal" >
<ImageButton
android:id="@+id/btn_create_event"
style="?android:attr/buttonBarButtonStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:contentDescription="@string/btn_save"
android:src="@drawable/content_save"
android:text="@string/btn_save" />
</LinearLayout>
无济于事
我的应用程序无法编译,因为它找不到buttonBarButtonStyle资源
这就是我应用它的方式。我的其他风格很好的工作,如果我只是继承像全息等共同的主题
<ImageButton
style="@style/Buttons"
android:id="@+id/btn_create_event"
android:contentDescription="@string/btn_save"
android:src="@drawable/content_save"
android:text="@string/btn_save" />
发现答案与本文类似:
事实证明,这种风格是私密的,您可能需要完全复制它才能实现:(我发现将
android:background=“?android:attr/selectableitemcondground”
应用于按钮属性会删除边框,这使得按钮的行为类似于android按钮栏(在扩展?android:attr/buttonBarButtonStyle
之后)
解释得很好对于AppCompat,您可以继承父样式。例如,将其添加到每个按钮
<style name="MyBorderlessButtonBarStyle" parent="@style/Widget.AppCompat.Button.Borderless">
<item name="android:layout_height">wrap_content</item>
<item name="android:layout_width">0dp</item>
<item name="android:textColor">@color/white</item>
<item name="android:layout_weight">1</item>
<!--more items-->
</style>
包装内容
0dp
@颜色/白色
1.
顺便说一句,我的清单中有这个属性,所以我认为我运行它的api级别不受支持。您不能有多个相同的命名自定义属性。
<ImageButton
style="@style/Buttons"
android:id="@+id/btn_create_event"
android:contentDescription="@string/btn_save"
android:src="@drawable/content_save"
android:text="@string/btn_save" />
<style name="MyBorderlessButtonBarStyle" parent="@style/Widget.AppCompat.Button.Borderless">
<item name="android:layout_height">wrap_content</item>
<item name="android:layout_width">0dp</item>
<item name="android:textColor">@color/white</item>
<item name="android:layout_weight">1</item>
<!--more items-->
</style>