彈出下拉菜單可以直接設置,但是顯示字體需要使用自定義適配器來生效
你嘗試在 Spinner
上應用了自定義的樣式,但似乎字體大小未更改。在 Spinner
控件中更改字體大小可能需要使用自定義適配器來生效。儘管你在樣式 setting_spinner
中設置了 android:textSize
,但這隻會影響下拉列表中的文本大小,而不會影響 Spinner
自身的文本大小。
爲了更改 Spinner
控件的文本大小,你可以嘗試以下方法:
-
創建一個自定義適配器並在適配器中設置文本大小。
-
CustomSpinnerAdapter
中,在getView
方法中設置TextView
的文本大小。以下是示例代碼:
public class CustomSpinnerAdapter extends ArrayAdapter<String> {
public CustomSpinnerAdapter(Context context, List<String> items) {
super(context, R.layout.custom_spinner_item, items);
setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
}
@NonNull
@Override
public View getView(int position, View convertView, @NonNull ViewGroup parent) {
View view = super.getView(position, convertView, parent);
TextView textView = view.findViewById(android.R.id.text1);
textView.setTextSize(TypedValue.COMPLEX_UNIT_SP, 24); // 設置字體大小
return view;
}
}
然後,使用這個自定義適配器來初始化你的 Spinner
:
List<String> items = new ArrayList<>();
// 添加選項到 items 列表
CustomSpinnerAdapter adapter = new CustomSpinnerAdapter(this, items);
Spinner firstSpinner = findViewById(R.id.firstSpinner);
firstSpinner.setAdapter(adapter);
這樣,你應該能夠更改 Spinner
控件中文本的大小。請確保在適配器中設置字體大小,並且 android:theme
中的 setting_spinner
樣式不再需要。
在你的 XML 佈局中,你已經爲 Spinner
設置了自定義主題樣式 android:theme="@style/setting_spinner"
,但是你的自定義主題樣式 setting_spinner
是基於 @android:style/Widget.TextView.SpinnerItem
進行定義的,該樣式可能不會影響 Spinner
中的文本大小。
要更改 Spinner
中文本的大小,你需要自定義 Spinner
中的文本視圖。你可以創建一個自定義的佈局文件,例如 custom_spinner_item.xml
,並在其中定義你想要的文本樣式。然後,在你的自定義適配器中,將這個佈局應用到每個 Spinner
選項上。
以下是修改 Spinner
字體大小的步驟:
- 創建一個自定義佈局資源文件,例如
custom_spinner_item.xml
,用於定義Spinner
中每個選項的樣式:
<!-- custom_spinner_item.xml -->
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/text1"
style="?android:attr/spinnerItemStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="24sp" <!-- 設置字體大小爲 24sp -->
android:textColor="@color/your_text_color" <!-- 設置文本顏色 -->
android:padding="8dp" <!-- 可選的內邊距 -->
/>
在上面的佈局文件中,你可以更改 android:textSize
屬性來定義文本的大小,並根據需要更改其他樣式屬性。
- 在你的 Java 代碼中,創建一個自定義適配器,並將自定義的佈局資源文件應用到每個
Spinner
選項上。確保設置適配器的DropDownViewResource
,以確保下拉列表項使用相同的自定義樣式:
List<String> items = new ArrayList<>();
// 添加選項到 items 列表
CustomSpinnerAdapter adapter = new CustomSpinnerAdapter(this, items);
adapter.setDropDownViewResource(R.layout.custom_spinner_item); // 設置下拉項樣式
Spinner firstSpinner = findViewById(R.id.firstSpinner);
firstSpinner.setAdapter(adapter);
在上述代碼中,R.layout.custom_spinner_item
引用了你創建的自定義佈局文件。
現在,你應該能夠在 Spinner
中看到修改後的文本大小。
如果你仍然遇到問題,請確保你的 custom_spinner_item.xml
文件正確,並且沒有其他樣式或主題覆蓋了你的設置。