我一直在瀏覽這個
啟用深色主題后,已格式化的文本(請參閱下面的代碼)不再出現??。

文本格式如下:
private fun displayTip(tip : Double) {
val formattedTip = NumberFormat.getCurrencyInstance().format(tip)
binding.tipResult.text = getString(R.string.tip_amount, formattedTip)
}
其中字串資源 'tip_amount' 定義為:
<string name="tip_amount">Tip Amount: %s</string>
小費計算如下所示:
private fun calculateTip() {
val serviceCost = binding.costOfService.text.toString()
val cost = serviceCost.toDoubleOrNull()
if (cost == null || cost == 0.0) {
displayTip(0.0)
return
}
val tipPercentage = when (binding.tipOptions.checkedRadioButtonId) {
R.id.option_fifteen_percent -> 0.15
R.id.option_eighteen_percent -> 0.18
else -> 0.20
}
var tip = tipPercentage * cost
if (binding.roundUpSwitch.isChecked) {
tip = kotlin.math.ceil(tip)
}
displayTip(tip)
}
我正在按照 CodeLab 中的說明使用視圖系結:
private lateinit var binding: ActivityMainBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root)
binding.calculateButton.setOnClickListener{calculateTip()}
}
啟用深色主題后消失的文本對應的文本視圖如下(注意:在用戶提供輸入并按下按鈕之前不會出現任何內容):
<TextView
android:id="@ id/tip_result"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:textSize="34sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/calculate_button"
tools:text="Tip Amount: $10" />
最后我的 night/themes.xml 檔案如下:
<resources xmlns:tools="http://schemas.android.com/tools">
<!-- Base application theme. -->
<style name="Theme.TipCalculator" parent="Theme.MaterialComponents.DayNight.DarkActionBar">
<!-- Primary brand color. -->
<item name="colorPrimary">@color/green_light</item>
<item name="colorPrimaryVariant">@color/green</item>
<item name="colorOnPrimary">@color/black</item>
<!-- Secondary brand color. -->
<item name="colorSecondary">@color/blue_light</item>
<item name="colorSecondaryVariant">@color/blue_light</item>
<item name="colorOnSecondary">@color/black</item>
<!-- Status bar color. -->
<item name="android:statusBarColor" tools:targetApi="l">?attr/colorPrimaryVariant</item>
<!-- Customize your theme here. -->
</style>
</resources>
為什么啟用深色主題時分號和格式化文本會消失?為什么 TextView 中的其余文本保留?
uj5u.com熱心網友回復:
正如此處所討論的,問題是字串資源在 values/strings.xml 和 night/strings.xml 中的顯示方式不同。night/strings.xml 中的字串資源沒有被編輯為使用字串格式,這是一個非常簡單但耗時的錯誤。如果您收到類似的錯誤,我建議檢查所有資源檔案中的所有字串資源的定義是否相同。
values/strings.xml 的資源定義為:
<string name="tip_amount">Tip Amount: %1$s</string>
而 night/strings.xml 定義為:
<string name="tip_amount">Tip Amount: </string>
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/403861.html
標籤:
