我想將使用樣式應用于font多個TextInputEditTexts共同使用的樣式。
然而,TextInputLayout在parent,但TextInputEditText無法找到。(即使字體應用于TextInputLayout, 的字體TextInputEditText也不會改變)。
TextInputEditText 不能被繼承嗎?
我應該擴展 EditText 來定義樣式嗎?
<resources xmlns:tools="http://schemas.android.com/tools">
<style name="SignInEditTextStyle" parent="Widget.MaterialComponents.TextInputLayout.OutlinedBox">
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:minWidth">245dp</item>
<item name="android:maxWidth">488dp</item>
</style>
</resources>
<com.google.android.material.textfield.TextInputLayout
android:id="@ id/login_pwd"
style="@style/LogInEditTextStyle"
android:layout_marginTop="100dp"
android:hint="PWD"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@ id/login_id">
<com.google.android.material.textfield.TextInputEditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
</com.google.android.material.textfield.TextInputLayout>
uj5u.com熱心網友回復:
查看源代碼TextInputEditText,您正在尋找的“父”樣式似乎被命名為Widget.Design.TextInputEditText:
ThemeEnforcement.obtainStyledAttributes(
context,
attrs,
R.styleable.TextInputEditText,
defStyleAttr,
R.style.Widget_Design_TextInputEditText); // <--- this style
或者,您可以利用“默認樣式屬性”:
public TextInputEditText(@NonNull Context context, @Nullable AttributeSet attrs) {
this(context, attrs, R.attr.editTextStyle);
}
您可以通過創建您選擇的樣式來做到這一點,然后在您的活動主題中參考它:
<style name="YourActivityTheme">
<item name="editTextStyle">@style/YourEditTextStyle</item>
</style>
<style name="YourEditTextStyle">
<item name="android:minWidth">245dp</item>
<item name="android:maxWidth">488dp</item>
</style>
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/409179.html
標籤:
上一篇:如何在Kotlin中使用Thread.sleep()
下一篇:如何在AndroidStudio的TextView段落中創建和設定可點擊的行內鏈接的樣式,而不設定完整的TextView樣式?
