2016-08-01 198 views
0

我使用小工具Spinner与自定义适配器和spinnerMode下拉列表中的自定义视图。我的问题是,我无法删除投下Spinner下拉列表的默认阴影。 enter image description here如何删除微调的阴影DropDownView

这里是内部Activity

mSpinner = (Spinner)findViewById(R.id.spinner); 
    setSpinnerData(); 

    customSpinnerAdapter = new CustomSpinnerAdapter(this,R.layout.spinner_item,CustomListViewValuesArr); 
    mSpinner.setAdapter(customSpinnerAdapter); 
    mSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 

     @Override 
     public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) { 
      itemSelect(pos); 
     } 

     @Override 
     public void onNothingSelected(AdapterView<?> adapterView) { 

     } 
    }); 

代码同样是这种微调的ActivityLayout内:

<Spinner 
      android:id="@+id/spinner" 
      android:layout_centerInParent="true" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:spinnerMode="dropdown" 
      android:background="@null" 
      android:padding="0dp" 
      android:layout_margin="15dp" 
      android:dropDownVerticalOffset="@dimen/vertical_offset"/> 

我用我自己的自定义Adapter

​​

最后我使用自定义视图的下拉

<RelativeLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:elevation="-6dp" 
android:layout_height="35dp"> 
    <TextView 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     style="@style/spinnerDropDownItemStyle" 
     android:singleLine="true" 
     android:id="@+id/spinner_drop_down" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:gravity="center_vertical" 
     android:textColor="@color/spinner_font_color" 
     android:layout_marginLeft="20dp" 
     android:textSize="14sp" 
     android:layout_marginStart="20dp" 
     android:ellipsize="marquee"> 
    </TextView > 

    <View 
     android:layout_width="match_parent" 
     android:layout_height="1dp" 
     android:background="@color/color_hint_change_pass"/> 

,为Spinner项目

<RelativeLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="vertical" 
android:layout_width="match_parent" 
android:ellipsize="marquee" 
android:background="@drawable/spinners_background" 
style="@style/spinnerItemStyle" 
android:layout_height="35dp"> 

<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="@string/spinner_hint" 
    android:gravity="center" 
    android:textStyle="bold" 
    android:textColor="@color/spinner_font_color" 
    android:textSize="14sp" 
    android:id="@+id/spinner_hint" 
    android:layout_marginRight="5dp" 
    android:layout_alignParentLeft="true" 
    android:layout_marginLeft="20dp" 
    android:layout_marginStart="20dp" 
    android:layout_alignTop="@+id/spinner_item" /> 

<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:id="@+id/spinner_item" 
    android:textColor="@color/spinner_header_color" 
    android:gravity="center" 
    android:text="sss" 
    android:textSize="14sp" 
    android:layout_centerVertical="true" 
    android:layout_toRightOf="@+id/spinner_hint" 
    android:layout_toEndOf="@+id/spinner_hint" /> 

<ImageView 
    android:layout_width="25dp" 
    android:layout_height="25dp" 
    android:src="@drawable/down_arrow_spinner" 
    android:layout_marginRight="17dp" 
    android:layout_marginEnd="1dp" 
    android:layout_centerVertical="true" 
    android:layout_alignParentRight="true" 
    android:layout_alignParentEnd="true" 
    android:id="@+id/imageView2" /> 

什么我都试过,没有工作:

  • 添加海拔0dp在Spinner部件
  • 添加空背景微调

先谢谢了!

回答

0

最终我用了一个微调控件android:popupBackground="@null"的属性,这个微调控件的弹出窗口的背景被删除了,所以影子的确如此。我唯一需要改变的是在我的自定义旋钮下拉菜单项中指定#fff的背景。所以我改成了这样:

<RelativeLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:background="#fff" 
android:layout_height="35dp"> 
    <TextView 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     style="@style/spinnerDropDownItemStyle" 
     android:singleLine="true" 
     android:id="@+id/spinner_drop_down" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:gravity="center_vertical" 
     android:textColor="@color/spinner_font_color" 
     android:layout_marginLeft="20dp" 
     android:textSize="14sp" 
     android:layout_marginStart="20dp" 
     android:ellipsize="marquee"> 
    </TextView > 

    <View 
     android:layout_width="match_parent" 
     android:layout_height="1dp" 
     android:background="@color/color_hint_change_pass"/> 
</RelativeLayout > 
1

使用此:

android:popupElevation="0dp"