2015-01-02 51 views
0

我有一個自定義文本視圖微調自定義文本視圖削減:微調與棒棒糖設備

下面是代碼:

<Spinner 
       android:id="@+id/spnr" 
       android:layout_width="fill_parent" 
       android:layout_height="30dp" 
       android:prompt="@string/list" /> 

<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@android:id/text1" 
style="?android:attr/spinnerItemStyle" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:background="#3D98E1" 

在Android 5.0以上版本(棒棒糖設備)的文本切入一半並顯示。

我需要微調器的高度只有30dp,我該如何解決這個問題?

回答

0

其實我不能理解你的要求,但是如果你想完全控制微調只使用這種技術。

您可以使用ListPopupWindow創建一個自定義微調控件到TextView,意味着當一個TextView被點擊時,一個ListPopupWindow打開,如微調控件下拉列表,您可以選擇一個元素。如果你需要,我會幫助你。

ListPopupWindow numberList; 
TextView spDays; 
ArrayList<Map<String, String>>() listTrans; 

in oncreate() spDays.setonclicklistner(this);spDays.setText("Select"); 
setNumberListSpinnerView(); 

in onclick(){ 
when spDays clicked :- numberList.show(); 
} 


void setNumberListSpinnerView() { 

numberList= new ListPopupWindow(this); 
numberList.setAnchorView(spDays); 

numberList.setOnItemClickListener((new AdapterView.OnItemClickListener() { 
    @Override 
    getListItem(); 
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
     Map map = listTrans.get(position); 
     spDays.setText(map.get("circle_name").toString()); 
     circle_name = map.get("circle_name") + ""; 
     circle_id = map.get("circle_id").toString(); 
     circleList.dismiss(); 
     Log.d("Circle id:", circle_id + ""); 
     getRetails(); 

    } 
})); 
} 


void getListItem(){ 
String[] numbers = {"1","2","3","4","5","6"}; 
listTrans = new ArrayList<Map<String, String>>(); 
LinkedHashMap<String, String> tran = new LinkedHashMap<String, String>(); 
for (String number : numbers) { 
    tran.put("numbers", number); 
    listTrans.add(tran); 
} 
SimpleAdapter adapter = new SimpleAdapter(AddRetailSurvey.this, listTrans, 
     android.R.layout.simple_spinner_dropdown_item, 
     new String[]{"numbers"}, 
     new int[]{android.R.id.text1}); 
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
numberList.setAdapter(adapter); 
} 

請檢查此代碼並根據您的要求進行修改。如果您發現任何問題,我在這裏幫助您。 :)

0

我不知道爲什麼,但當我添加1dp虛擬填充的文本不再被切斷。

<style name="YourSpinnerStyle" parent="Widget.AppCompat.Spinner.Underlined"> 
    <item name="android:gravity">center|start</item> 
    <item name="android:layout_width">match_parent</item> 
    <item name="android:layout_height">wrap_content</item> 
    <item name="android:padding">1dp</item> 
    <item name="android:textColor">@android:color/black</item> 
    <item name="android:textCursorDrawable">@null</item> 
    <item name="android:textSize">18sp</item> 
</style> 
相關問題