Android設置spinner字體

彈出下拉菜單可以直接設置,但是顯示字體需要使用自定義適配器來生效
你嘗試在 Spinner 上應用了自定義的樣式,但似乎字體大小未更改。在 Spinner 控件中更改字體大小可能需要使用自定義適配器來生效。儘管你在樣式 setting_spinner 中設置了 android:textSize,但這隻會影響下拉列表中的文本大小,而不會影響 Spinner 自身的文本大小。

爲了更改 Spinner 控件的文本大小,你可以嘗試以下方法:

  1. 創建一個自定義適配器並在適配器中設置文本大小。

  2. 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 字體大小的步驟:

  1. 創建一個自定義佈局資源文件,例如 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 屬性來定義文本的大小,並根據需要更改其他樣式屬性。

  1. 在你的 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 文件正確,並且沒有其他樣式或主題覆蓋了你的設置。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章