我正在制作小部件,我对此感到非常沮丧。早些时候,我只是设置颜色,因为我看到它,它没关系。但现在我想使它与系统主题设置相匹配。如何实现?
我被要求发布一些代码:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_height="match_parent"
android:padding="@dimen/widget_margin"
android:orientation="vertical"
style="@android:style/Theme.Holo.Light">
<!-- pasek górny z przyciskiem dodawania -->
<GridLayout
android:layout_width="fill_parent"
android:layout_height="37dp"
android:rowCount="1"
android:columnCount="2"
android:id="@+id/Header"
android:background="@android:color/holo_blue_dark">
<ImageButton
android:layout_width="37dp"
android:layout_height="37dp"
android:id="@+id/AddButton"
android:layout_row="0"
android:layout_column="1"
android:contentDescription="Add" />
</GridLayout>
<!-- panel z wiadomościami -->
<ListView
android:layout_width="fill_parent"
android:layout_height="0dp"
android:id="@+id/ListView"
android:layout_weight="1"
style="@android:style/Widget.Holo.ListView"
android:background="@android:color/holo_green_light" />
<!-- stopka widgetu -->
<GridLayout
android:layout_width="fill_parent"
android:layout_height="37dp"
android:rowCount="1"
android:columnCount="2"
android:layout_gravity="end"
android:id="@+id/Footer"
android:background="@android:color/holo_blue_dark">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceSmall"
android:text="@string/copyright"
android:id="@+id/textView"
android:layout_column="1"
android:layout_row="0"
android:textColor="@android:color/white"
android:layout_gravity="center_vertical" />
</GridLayout>
</LinearLayout>
这次我希望我的小部件融入系统。因为我可以使用提供一些图标,一些颜色和图形的主题,我会使用这些颜色来匹配其他组件。有可能吗?
答案 0 :(得分:0)
android:color
,android:background
等,视图将继承主题中的颜色。首先请确保您继承了满足您的主题。
<style name="MyStyle" parent="Theme.Material">
</style>
以下是按钮的示例:
<style name="MyStyle" parent="Theme.Material">
<item name="android:ButtonStyle">@style/MyStyle.Buttons</item>
...
</style>
<style name="MyStyle.Buttons" parent="Widget.Material.Button">
<item name="android:background">@color/my_color</item>
...
</style>
首先,您要说所有按钮都应该来自MyStyle.Buttons
。然后定义MyStyle.Buttons
并添加所需的所有功能。这样所有按钮将具有相同的背景,而不需要手动执行。
关于这个话题有很多问题。