当前位置:   article > 正文

android dropdown,android – 如何将Dropdown微调器锚定到父Line...

android dropdown

我发现最简单的方法是扩展ImageButton并添加ListPopupWindow.

public class MenuDropDown extends ImageButton {

private ListPopupWindow mListDropDownWindow;

private int mDropDownAnchorId;

private ListAdapter mAdapter;

private DropDownOnClickListener mDropDownOnClickListener;

private OnItemClickListener mOnItemClickListener;

public MenuDropDown(Context context, AttributeSet attrs) {

this(context, attrs,R.attr.menuDropDown);

}

public MenuDropDown(Context context) {

this(context, null);

}

public MenuDropDown(Context context, AttributeSet attrs, int defStyle) {

super(context, attrs, defStyle);

mListDropDownWindow = new ListPopupWindow(context);

mListDropDownWindow

.setPromptPosition(ListPopupWindow.POSITION_PROMPT_BELOW);

TypedArray a = context.obtainStyledAttributes(attrs,

R.styleable.MenuDropDown, defStyle, 0);

mDropDownAnchorId = a.getResourceId(

R.styleable.MenuDropDown_dropDownAnchor,

View.NO_ID);

mListDropDownWindow

.setOnItemClickListener(new DropDownItemClickListener());

mListDropDownWindow.setModal(true);

a.recycle();

setFocusable(true);

mDropDownOnClickListener = new DropDownOnClickListener();

super.setOnClickListener(mDropDownOnClickListener);

}

private class DropDownItemClickListener implements

AdapterView.OnItemClickListener {

@Override

public void onItemClick(AdapterView> parent, View v, int position,

long id) {

dissmissDropDown();

if(mOnItemClickListener != null){

mOnItemClickListener.onItemClick(parent, v, position, id);

}

}

}

private class DropDownOnClickListener implements OnClickListener {

@Override

public void onClick(View v) {

showDropDown();

}

}

private void dissmissDropDown() {

mListDropDownWindow.dismiss();

}

public void setAdapter(T adapter) {

mAdapter = adapter;

mListDropDownWindow.setAdapter(mAdapter);

}

public boolean isPopupShowing() {

return mListDropDownWindow.isShowing();

}

public void setOnItemClickListener(AdapterView.OnItemClickListener listener){

mOnItemClickListener = listener;

}

private void showDropDown() {

if (mListDropDownWindow.getAnchorView() == null) {

if (mDropDownAnchorId != View.NO_ID) {

mListDropDownWindow.setAnchorView(getRootView().findViewById(

mDropDownAnchorId));

} else {

mListDropDownWindow.setAnchorView(this);

}

}

mListDropDownWindow.show();

if (VERSION.SDK_INT >= 9) {

mListDropDownWindow.getListView().setOverScrollMode(View.OVER_SCROLL_ALWAYS);

}

}

public ListAdapter getAdapter() {

return mAdapter;

}

}

attrs.xml:

布局:

????????

android:id="@+id/autoText"

android:layout_width="0dp"

android:layout_height="fill_parent"

android:layout_weight=".8"

android:gravity="bottom"

android:dropDownAnchor="@id/parent"/>

android:id="@+id/customSpinner"

android:layout_width="0dp"

android:layout_height="fill_parent"

android:layout_weight=".2"

android:drawSelectorOnTop="true"

mycode:dropDownAnchor="@id/parent"

android:gravity="bottom"/>

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/111516
推荐阅读
相关标签
  

闽ICP备14008679号