如何在Android中指定一個微調第一/最後一個項目的頂部/底部的微胖?請參閱下面的Goolge示例(8 dp間距)。 頂部/底部填充的微調
回答
唯一的解決方案似乎是這一個。我發現它跟隨你的鏈接。http://stackoverflow.com/a/16400899/519790 – multiholle
您需要使用自定義佈局爲您創建一個自定義適配器Spinner
。因此,您只需提供具有適當邊距/ paddins的佈局。
Spinner spinner = (Spinner) findViewById(R.id.myspinner); ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.data, R.layout.spinner_item); adapter.setDropDownViewResource(R.layout.spinner_dropdown_item); spinner.setAdapter(adapter);
你可以找到一個有效的例子here。
只需創建要在微調顯示的項目一個單獨的佈局。
像這樣的事情
spinner_text_view.xml
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/customTextView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="15dp"
android:text="@string/sample_list_item"
android:textColor="@android:color/black"
android:textSize="20sp" />
然後在你的活動/片段,您可以創建一個適配器(陣列適配器是在這種情況下,簡單的),並通過這種佈局是適配器參考。最後將該適配器設置爲微調器,您可以獲得所需的結果。
示例代碼。
private void setupSpinner() {
String[] sampleSpinnerItems = {"One", "Two", "Three", "Four", "Five"};
ArrayAdapter<String> spinnerAdapter = new ArrayAdapter<String>(this,
R.layout.spinner_text_view, sampleSpinnerItems);
sampleSpinner.setAdapter(spinnerAdapter);
}
希望這會有所幫助。
注:spinner_text_view是你剛纔創建的佈局文件。
這不會給我額外的填充第一個和最後一個項目之後。 – multiholle
您需要自定義適配器用於此和自定義佈局。 您可以使用2種佈局。假設你有n個元素可以顯示,在你的微調中你將有n + 2個。如果位置爲0(第一個元素)或最後一個元素,您將顯示空白布局,否則您將顯示其他佈局。 將用於建立這個空間的空佈局
你可以做到這一點使用自定義Adapter
爲Spinner
。它看起來是這樣的:
class YourAdapter extends BaseArrayAdapter<YourObject> {
@Override
public View getDropDownView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
convertView = inflater.inflate(R.layout.your_item, parent, false);
DropDownViewHolder holder = new DropDownViewHolder();
holder.root = convertView.findViewById(R.id.drop_down_root);
// other assignments etc.
convertView.setTag(holder);
}
DropDownViewHolder holder = (DropDownViewHolder) convertView.getTag();
int bottomPadding = 0;
int topPadding = 0;
if (position == 0) {
topPadding = getContext().getResources().getDimensionPixelSize(R.dimen.margin_8);
} else if (position == (getCount() - 1)) {
bottomPadding = getContext().getResources().getDimensionPixelSize(R.dimen.margin_8);
}
holder.root.setPadding(0, topPadding, 0, bottomPadding);
// other UI related logic etc.
return convertView;
}
// ...
public static class DropDownViewHolder {
View root;
// other views
}
}
與設置微胖其實邏輯可以改變改變一些存根視圖能見度VISIBLE
或取決於所處的位置誇大一些其他的佈局,但與填充的解決方案似乎更自然的我。
- 1. 填充頂部和底部ErrorProvider控件
- 2. 花式框填充(頂部和底部)
- 3. 填充樹底部
- 4. 填充機頂和填充,底部不工作
- 5. CSS一致的頂部/底部填充框
- 6. chartjs - 圖表區域的頂部和底部填充
- 7. 刪除SeekBar中的頂部和底部填充
- 8. Android的 - 嘗試逐步填充圓底部到頂部
- 9. 頂部和底部的菜單懸停和填充
- 10. ie 8增加了不必要的頂部和底部填充
- 11. 擺脫C3上的頂部/底部邊距/填充圖表
- 12. 如何在actionscript3中填充TextField的頂部和底部?
- 13. 沒有頂部或底部填充的自舉柵格行?
- 14. RelativeLayout中的ImageView有頂部和底部填充
- 15. ImageView留下不需要的頂部/底部邊距/填充
- 16. 面板中未知的頂部和底部填充
- 17. TextView上意外的頂部和底部填充?
- 18. 帶有CSS的條形圖,如何從底部到頂部填充,而不是從頂部到底部?
- 19. 的UITextView與底部填充
- 20. 如何從android.support.v7.widget.Toolbar中刪除頂部和底部填充?
- 21. 與填充不尊重頂部和底部邊緣
- 22. 爲什麼頂部和底部填充是浮動元素?
- 23. 導航欄頂部和底部填充通過CSS
- 24. ListView從底部而不是從頂部填充
- 25. Android按鈕頂部/底部填充不適用於Android 4?
- 26. TinyMce中的頂部填充
- 27. Css坍塌填充底部
- 28. 底部填充div錯誤
- 29. 底部IE6額外填充
- 30. 底部填充,不DIV
嘗試這些鏈接[第一鏈接](http://stackoverflow.com/questions/17407626/custom-layout-for-spinner-item)[第二鏈接](http://stackoverflow.com/questions/8946893/ android-custom-spinner-layout)[示例程序](http://mrbool.com/how-to-customize-spinner-in-android/28286)希望本幫助完整 –