日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

怎样把java换主题_java – 如何在切换主题时考虑变化?

發(fā)布時間:2025/3/20 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 怎样把java换主题_java – 如何在切换主题时考虑变化? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

您可以做的是為視圖類型創(chuàng)建自定義屬性(例如TextView.Person,TextView.Date …),在xml中,您可以引用屬性,然后在不同的主題中定義屬性.例如,你可以使用style.xml

@style/DateTextViewDefault

#ff333333

monospace

#3F51B5

#303F9F

#FF4081

@style/PersonTextViewA

16sp

serif

#ff999999

#888888

#555555

#000000

@style/PersonTextViewB

@style/DateTextViewB

20sp

monospace

#ff55aa

#ff0000BB

sans-serif

然后你的活動xml布局

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical">

style="?attr/TextView.Person"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:text="John Doe" />

style="?attr/TextView.Date"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:text="31/12/1999" />

android:id="@+id/buttonA"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="THEME A" />

android:id="@+id/buttonB"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="THEME B" />

注意TextView的樣式是

style="?attr/TextView.Person"

style="?attr/TextView.Date"

AppTheme.A和AppTheme.B對這些屬性有2種不同的分辨率

在此示例中,屬性是視圖的整個樣式,但您可以輕松地為每種視圖類型(TextView.person)設置一種樣式,然后為該樣式的單個項目定義通用屬性,例如:

并且只更改主題中的單個屬性.

然后在您的Activity中,您只需要使用setTheme(int)在onCreate中設置主題,在這種情況下,值可以是R.style.AppTheme_A或R.style.AppTheme_B.

使用此方法,您可以根據需要添加任意數量的樣式,而無需觸摸布局.此外,您始終可以在基本主題中定義一些默認樣式,然后僅在某些自定義主題中覆蓋該值,而其他樣式則使用上面示例中的TextView.Date的默認樣式.

如果你想快速嘗試一下,這里是我用來測試style.xml和activity_main.xml的Activity的代碼

class MainActivity : AppCompatActivity() {

private val prefs by lazy { getSharedPreferences("SharedPrefs", Context.MODE_PRIVATE) }

private var customTheme: Int

get() = prefs.getInt("theme", R.style.AppTheme_A)

set(value) = prefs.edit()

.putInt("theme", value)

.apply()

.also { recreate() }

override fun onCreate(savedInstanceState: Bundle?) {

super.onCreate(savedInstanceState)

setTheme(customTheme)

setContentView(R.layout.activity_main)

buttonA.setOnClickListener { customTheme = R.style.AppTheme_A }

buttonB.setOnClickListener { customTheme = R.style.AppTheme_B }

}

}

總結

以上是生活随笔為你收集整理的怎样把java换主题_java – 如何在切换主题时考虑变化?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。