2015-04-14 3 views
0

У меня есть несколько вопросов, с укладкой на блеснестиля вертушки выпадающего список

  1. Мне нужно изменить вытяжку из вращателя (выбранного вида) , когда пользователь открывает выпадающий список (я попробовал несколько селекторов с разные состояния, но ничего не работает должным образом)
  2. Я не могу изменить цвет текста в выпадающем списке (я могу изменить цвет , но мне нужен другой цвет для выбранного значения), вы можете увидеть больше подробно в ссылках ниже ,
  3. Я не могу удалить разделители из выпадающего списка.

Я не хочу использовать пользовательский макет с кнопкой и списком, чтобы имитировать функциональность счетчика (но если нет решения, я сделаю это).

style.xml

<resources xmlns:android="http://schemas.android.com/apk/res/android"> 

<style name="AppBaseTheme" parent="@android:style/Theme.Black.NoTitleBar.Fullscreen"> 
    <item name="android:background">@android:color/transparent</item> 
    <item name="android:windowBackground">@android:color/white</item> 
    <item name="android:colorBackground">@android:color/white</item> 
    <item name="android:dropDownSpinnerStyle">@style/SpinnerTheme</item> 
</style> 

<style name="SpinnerAppTheme" parent="android:Widget.Holo.Light.Spinner"> 
    <item name="android:background">@drawable/spinner_background_holo_light</item> 
    <item name="android:dropDownSelector">@drawable/list_selector_holo_light</item> 
    <item name="android:dropDownListViewStyle">@style/mySpinnerStyle</item> 
</style> 

<style name="mySpinnerStyle" parent="android:Widget.ListView.DropDown"> 
    <item name="android:divider">@null</item> 
    <item name="android:dividerHeight">0px</item> 
</style> 

<style name="Theme_Dialog_Translucent" parent="android:Theme.Dialog"> 
    <item name="android:windowBackground">@null</item> 
    <item name="android:background">@android:color/white</item> 
    <item name="android:windowTitleStyle">@style/dialog_title_style</item> 
</style> 

<style name="Theme_Dialog_Measurment_Data_Dialog" parent="android:Theme.Dialog"> 
    <item name="android:windowBackground">@null</item> 
    <item name="android:background">@color/general_background_color</item> 
    <item name="android:windowTitleStyle">@style/dialog_title_style</item> 
</style> 

<style name="dialog_title_style" parent="android:Widget.TextView"> 
    <item name="android:textColor">@android:color/black</item> 
</style> 

<Spinner 
    android:id="@+id/res_spinner" 
    android:layout_width="0dp" 
    android:layout_height="30dp" 
    android:layout_weight="60" 
    android:background="@drawable/ref_spinner_selector" 
    android:dropDownVerticalOffset="1dp" 
    android:dropDownWidth="60dp" 
    android:gravity="center" 
    android:popupBackground="@null" 
    android:spinnerMode="dropdown"/> 

how the spinner needs to be look like

how the spinner looks like now

Благодаря

Update : если кто-то будет иметь проблемы, чтобы настроить SPINNERS

я управляю, чтобы исправить все проблемы с использованием ListPopupWindow

private void initPopup() 
{ 
    _lp = new ListPopupWindow(getActivity()); 
    _lp.setAnchorView(_resTitle); 

    ColorDrawable cd = new ColorDrawable(getResources().getColor(android.R.color.transparent)); 

    _lp.setBackgroundDrawable(cd); 
    _lp.setOnDismissListener(new OnDismissListener() 
    { 

     @Override 
     public void onDismiss() 
     { 
      _resTitle.setSelected(false); 
     } 
    }); 
    _listPopupAdapter = new DataSetListAdapter(getActivity(), _resData); 
    _lp.setAdapter(_listPopupAdapter); 
} 

OnClick

случай R.id.res_title:

  if (!_lp.isShowing()) 
      { 
       _resTitle.setSelected(true); 
       _lp.setOnItemClickListener(this); 
       _lp.show(); 
       _lp.getListView().setDivider(null); 
       _lp.getListView().setDividerHeight(0); 
      } 
      else 
      { 
       _resTitle.setSelected(false); 
       _lp.dismiss(); 
      } 
      break; 

ответ

0

Android не позволяет выполнить настройку spinner UI.So Если вы хотите изменить свой пользовательский интерфейс spinner, тогда используйте всплывающее окно Android wh wh прежде чем вы можете поместить свой стиль пользовательского интерфейса с эффектом, как в раскрывающемся меню например

spinner=(EditText)findViewById(R.id.txt_Spinner); 


    spinner.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 

      p = new Point(); 
      p.x = location[0]+(v.getHeight()); 
      p.y = location[1]+v.getHeight(); 

      if (p != null) 
       showPopup(statusActivity.this, p); 

      System.out.println("show popup"); 
     } 
    }); 




// The method that displays the popup. 
private void showPopup(final Activity context, Point p) { 
    int popupWidth = 300; 
    int popupHeight = 500; 

    // Inflate the popup_layout.xml 
    LinearLayout viewGroup = (LinearLayout) context.findViewById(R.id.popup); 
    LayoutInflater layoutInflater = (LayoutInflater) context 
    .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    View layout = layoutInflater.inflate(R.layout.popup_layout, viewGroup); 

    // Creating the PopupWindow 
    popup = new PopupWindow(context); 
    popup.setContentView(layout); 
    popup.setWidth(popupWidth); 
    popup.setHeight(popupHeight); 
    popup.setFocusable(true); 

    // Some offset to align the popup a bit to the right, and a bit down, relative to button's position. 
    int OFFSET_X = 00; 
    int OFFSET_Y = 00; 

    // Clear the default translucent background 
    popup.setBackgroundDrawable(new BitmapDrawable()); 

    // Displaying the popup at the specified location, + offsets. 
    popup.showAtLocation(layout, Gravity.NO_GRAVITY, p.x + OFFSET_X, p.y + OFFSET_Y); 
    ((TextView)layout.findViewById(R.id.textView2)).setClickable(true); 
    ((TextView)layout.findViewById(R.id.textView3)).setClickable(true); 
    ((TextView)layout.findViewById(R.id.textView4)).setClickable(true); 
    ((TextView)layout.findViewById(R.id.textView5)).setClickable(true); 
    ((TextView)layout.findViewById(R.id.textView6)).setClickable(true); 
    ((TextView)layout.findViewById(R.id.textView7)).setClickable(true); 
    ((TextView)layout.findViewById(R.id.textView8)).setClickable(true); 
    ((TextView)layout.findViewById(R.id.textView9)).setClickable(true); 

} 

и popup.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/popup" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:background="@drawable/popup_bg" 
android:orientation="vertical" > 

<TextView 
    android:id="@+id/textView1" 
    style="@style/text_orange_heading" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="Select Status" 
    android:textAppearance="?android:attr/textAppearanceLarge" /> 

<TextView 
    android:id="@+id/textView2" 
    style="@style/text_blue_contains" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_marginTop="5dp" 
    android:onClick="onClick" 
    android:clickable="true" 
    android:drawableBottom="@drawable/line_white" 
    android:tag="Sleeping" 
    android:text="Sleeping" /> 

<TextView 
    android:id="@+id/textView3" 
    style="@style/text_blue_contains" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_marginTop="5dp" 
    android:onClick="onClick" 
    android:clickable="true" 
    android:drawableBottom="@drawable/line_white" 
    android:tag="Available" 
    android:text="Available" /> 

<TextView 
    android:id="@+id/textView4" 
    style="@style/text_blue_contains" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_marginTop="5dp" 
    android:onClick="onClick" 
    android:clickable="true" 
    android:drawableBottom="@drawable/line_white" 
    android:tag="Busy" 
    android:text="Busy" /> 

<TextView 
    android:id="@+id/textView5" 
    style="@style/text_blue_contains" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_marginTop="5dp" 
    android:onClick="onClick" 
    android:clickable="true" 
    android:drawableBottom="@drawable/line_white" 
    android:tag="At work" 
    android:text="At work" /> 

<TextView 
    android:id="@+id/textView6" 
    style="@style/text_blue_contains" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_marginTop="5dp" 
    android:onClick="onClick" 
    android:clickable="true" 
    android:drawableBottom="@drawable/line_white" 
    android:tag="Battery charge low" 
    android:text="Battery charge low" /> 

<TextView 
    android:id="@+id/textView7" 
    style="@style/text_blue_contains" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_marginTop="5dp" 
    android:onClick="onClick" 
    android:clickable="true" 
    android:drawableBottom="@drawable/line_white" 
    android:tag="In meeting" 
    android:text="In meeting" /> 

<TextView 
    android:id="@+id/textView8" 
    style="@style/text_blue_contains" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_marginTop="5dp" 
    android:onClick="onClick" 
    android:clickable="true" 
    android:drawableBottom="@drawable/line_white" 
    android:tag="TMS me later" 
    android:text="TMS me later" /> 

<TextView 
    android:id="@+id/textView9" 
    style="@style/text_blue_contains" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_marginTop="5dp" 
    android:onClick="onClick" 
    android:clickable="true" 
    android:drawableBottom="@drawable/line_white" 
    android:tag="At the toilet" 
    android:text="At the toilet" /> 

<EditText 
    android:id="@+id/textCustomize" 
    style="@style/text_blue_contains" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_marginTop="5dp" 
    android:tag="Customize" 
    android:text="Customize" /> 

+0

Спасибо за ответ, но мне удалось это сделать с помощью ListPopupWindow –

+0

пример был таким же всплывающим меню. –

Смежные вопросы