2014-09-02 4 views
0

회 전자 (드롭 다운)와 함께 ActionBar를 사용하고 있지만 선택 영역 자체의 텍스트가 목록의 요소 중 하나가 아닌 것으로되어 있습니다. 또한 선택 영역을 사용자 지정하는 사용자 지정 어댑터를 사용하여 스피너의 요소 스타일을 지정합니다.회 전자 드롭 다운 사용자 정의

아마도 스크린 샷이 가장 좋을 것입니다. 이것은 내가 현재 가지고있는 것입니다 enter image description here

: 이것은 내가 달성하고자하는 것입니다

enter image description here

내 사용자 정의 어댑터에서 미리보기 :

public class CategoriesDropDownAdapter extends BaseAdapter{ 

    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     if (convertView == null) { 
      LayoutInflater mInflater = (LayoutInflater) context.getSystemService(Activity.LAYOUT_INFLATER_SERVICE); 
      convertView = mInflater.inflate(R.layout.categories_drop_down_item, parent, false); 
     }   
     Category category = getCategory(position); 
     ImageView icon = (ImageView) convertView.findViewById(R.id.catIcon); 
     TextView title = (TextView) convertView.findViewById(R.id.catTitle);   
     //setting icon, title and background color 
     icon.setImageDrawable(category.getIcon());   
     title.setText(category.getTitle()); 
     convertView.setBackgroundColor(category.getBackgroundColor());  
     //setting the width of the drop-down to take all the layout width 
     WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE); 
     DisplayMetrics metrics = new DisplayMetrics(); 
     wm.getDefaultDisplay().getMetrics(metrics);  
     convertView.setLayoutParams(new LayoutParams(metrics.widthPixels, 100)); 

     return convertView; 
    } 
} 

나는 사용자 정의 피할 수있는 방법 사용자 지정 어댑터를 사용할 때 선택 영역 (막대 자체의 영역) 해당 영역을 다르게 사용자 지정해야합니다 (예를 들어 오른쪽 하단에 삼각형이없는 경우).

답변

1

당신은 UI XML 파일에 styles.xml

<resources> 
<style name="spinner_style"> 
    // Change background 
    <item name="android:background">@drawable/img</item> 

    <item name="android:dropDownWidth">fill_parent</item> 
    <item name="android:showDividers">beginning|middle|end</item> 
    <item name="android:alignmentMode">alignBounds</item> 
    <item name="android:dividerHeight">2dp</item> 
    <item name="android:scrollbars">none</item> 
    <item name="android:scrollbarAlwaysDrawVerticalTrack">false</item> 
    <item name="android:scrollbarTrackVertical">@android:color/transparent</item> 
    <item name="android:dropDownSelector">@android:color/white</item> 
    <item name="android:requiresFadingEdge">none</item> 
</style> 
</resources> 

에서 회 전자의 구성 요소에 대한 스타일을 적용 할 필요가 내 스피너/액션 바는 XML이 아니라에 설명되지 않은 경우 수행하는 방법

<Spinner 
    android:id="@+id/ics_spinner" 
    style="@style/spinner_style" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:scrollbars="none" /> 
+0

암호? actionBar.setNavigationMode (ActionBar.NAVIGATION_MODE_LIST); actionBar.setListNavigationCallbacks (새 CategoriesDropDownAdapter (...), this); – Haji

관련 문제