下面列出了android.widget.ListPopupWindow#setWidth ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
private void init() {
loading = new AppLoading(this, false, R.string.loading);
tv_type.setText(Tdp.blockType + "");
tv_type.setOnClickListener(this);
btn_search.setOnClickListener(this);
tv_tag.setVisibility(View.VISIBLE);
et_hash.setHint("请输入交易Hash");
mPopup = new ListPopupWindow(this);
ArrayAdapter adapter = new ArrayAdapter(this, R.layout.layout_block_popup_item, Tdp.blockTypes);
mPopup.setAdapter(adapter);
mPopup.setWidth(LinearLayout.LayoutParams.WRAP_CONTENT);
mPopup.setHeight(LinearLayout.LayoutParams.WRAP_CONTENT);
mPopup.setModal(true);
mPopup.setOnItemClickListener(this);
tv_to.setOnClickListener(this);
tv_from.setOnClickListener(this);
transactionHash = "";
if (getIntent() != null && getIntent().hasExtra("transactionHash")) {
transactionHash = getIntent().getStringExtra("transactionHash");
searchRequest(transactionHash);
}
}
private void showAddress(final DrawableRecipientChip currentChip, final ListPopupWindow popup,
int width) {
if (!mAttachedToWindow) {
return;
}
int line = getLayout().getLineForOffset(getChipStart(currentChip));
int bottom = calculateOffsetFromBottom(line);
// Align the alternates popup with the left side of the View,
// regardless of the position of the chip tapped.
popup.setWidth(width);
popup.setAnchorView(this);
popup.setVerticalOffset(bottom);
popup.setAdapter(createSingleAddressAdapter(currentChip));
popup.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
unselectChip(currentChip);
popup.dismiss();
}
});
popup.show();
ListView listView = popup.getListView();
listView.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
listView.setItemChecked(0, true);
}
private void showAddress(final DrawableRecipientChip currentChip,final ListPopupWindow popup,final int width)
{
if(!mAttachedToWindow)
return;
final int line=getLayout().getLineForOffset(getChipStart(currentChip));
final int bottom=calculateOffsetFromBottom(line);
// Align the alternates popup with the left side of the View,
// regardless of the position of the chip tapped.
popup.setWidth(width);
popup.setAnchorView(this);
popup.setVerticalOffset(bottom);
popup.setAdapter(createSingleAddressAdapter(currentChip));
popup.setOnItemClickListener(new OnItemClickListener()
{
@Override
public void onItemClick(final AdapterView<?> parent,final View view,final int position,final long id)
{
unselectChip(currentChip);
popup.dismiss();
}
});
popup.show();
final ListView listView=popup.getListView();
listView.setChoiceMode(AbsListView.CHOICE_MODE_SINGLE);
listView.setItemChecked(0,true);
}
private void initView() {
loading = new AppLoading(this, false, R.string.loading);
mPopup = new ListPopupWindow(this);
ArrayAdapter adapter = new ArrayAdapter(this, R.layout.layout_block_popup_item, Tdp.blockTypes);
mPopup.setAdapter(adapter);
mPopup.setWidth(LinearLayout.LayoutParams.WRAP_CONTENT);
mPopup.setHeight(LinearLayout.LayoutParams.WRAP_CONTENT);
mPopup.setModal(true);
mPopup.setOnItemClickListener(this);
refreshLayout.setOnRefreshListener(this);
LinearLayoutManager mLayoutManager = new LinearLayoutManager(recyclerView.getContext());
mAdapter = new TransactionAdapter(this, Tdp.blockType);
tv_type = mAdapter.getTypeTextView();
mAdapter.setOnClickListener(this);
recyclerView.setLayoutManager(mLayoutManager);
recyclerView.setAdapter(mAdapter);
recyclerView.setOnLoadMoreListener(mLayoutManager, mAdapter, new LoadMoreRecycleView.OnLoadMoreListener() {
@Override
public void loadMore() {
if (mAdapter.isHasMore()) {
loadData();
}
}
});
}
private void initView() {
tv_type.setOnClickListener(this);
btn_search.setOnClickListener(this);
mPopup = new ListPopupWindow(this);
ArrayAdapter adapter = new ArrayAdapter(this, R.layout.layout_block_popup_item, Tdp.blockTypes);
mPopup.setAdapter(adapter);
mPopup.setWidth(LinearLayout.LayoutParams.WRAP_CONTENT);
mPopup.setHeight(LinearLayout.LayoutParams.WRAP_CONTENT);
mPopup.setModal(true);
mPopup.setOnItemClickListener(this);
}
private void createPopWindow(){
popupWindow = new ListPopupWindow(getContext());
popupAdapter = new SelectorAdapter();
popupWindow.setAnchorView(parent.getChildAt(0));
popupWindow.setAdapter(popupAdapter);
popupWindow.setWidth(WindowManager.LayoutParams.MATCH_PARENT);
popupWindow.setHeight(WindowManager.LayoutParams.WRAP_CONTENT);
//获取焦点
popupWindow.setModal(true);
popupWindow.setOnItemClickListener(this);
popupWindow.setOnDismissListener(this);
}
private void initPopupWindow() {
popupWindow = new ListPopupWindow(mContext) {
@Override
public void show() {
super.show();
mRightImageTopView.setClickable(true);
mRightIv.startAnimation(mAnimation);
}
@Override
public void dismiss() {
super.dismiss();
}
};
popupWindow.setOnItemClickListener(this);
popupWindow.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
popupWindow.setPromptPosition(ListPopupWindow.POSITION_PROMPT_BELOW);
popupWindow.setWidth(ViewGroup.LayoutParams.WRAP_CONTENT);
popupWindow.setHeight(ViewGroup.LayoutParams.WRAP_CONTENT);
popupWindow.setAnchorView(editText);
popupWindow.setOnDismissListener(new PopupWindow.OnDismissListener() {
@Override
public void onDismiss() {
popupWindowHideTime = System.currentTimeMillis();
mRightIv.startAnimation(mResetAnimation);
}
});
}
private void createPopupFolderList() {
mFolderPopupWindow = new ListPopupWindow(this);
mFolderPopupWindow.setAdapter(mFolderAdapter);
mFolderPopupWindow.setContentWidth(ListPopupWindow.MATCH_PARENT);
mFolderPopupWindow.setWidth(ListPopupWindow.MATCH_PARENT);
mFolderPopupWindow.setHeight(ListPopupWindow.MATCH_PARENT);
mFolderPopupWindow.setAnchorView(toolbar);
mFolderPopupWindow.setModal(true);
mFolderPopupWindow.setAnimationStyle(R.style.popwindow_anim_style);
mFolderPopupWindow.setOnItemClickListener(this);
}
@Override public boolean onLongClick(View v) {
String[] versions = { "Camera", "Laptop", "Watch", "Smartphone",
"Television" };
final ListPopupWindow listPopupWindow = new ListPopupWindow(
getActivity());
listPopupWindow.setAdapter(new ArrayAdapter<String>(getActivity(),
android.R.layout.simple_dropdown_item_1line, versions));
listPopupWindow.setAnchorView(mListPopupButton);
listPopupWindow.setWidth(300);
listPopupWindow.setHeight(400);
listPopupWindow.setModal(true);
listPopupWindow.show();
return false;
}
private void initFromAttributes(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
final TypedArray a = getContext().obtainStyledAttributes(attrs, R.styleable.EditSpinner, defStyleAttr, defStyleRes);
mPopup = new ListPopupWindow(context, attrs);
mPopup.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
mPopup.setPromptPosition(ListPopupWindow.POSITION_PROMPT_BELOW);
Drawable selector = a.getDrawable(R.styleable.EditSpinner_dropDownSelector);
if (selector != null) {
mPopup.setListSelector(selector);
}
int dropDownAnimStyleResId = a.getResourceId(R.styleable.EditSpinner_dropDownAnimStyle, -1);
if (dropDownAnimStyleResId > 0) {
setDropDownAnimationStyle(dropDownAnimStyleResId);
}
mDropDownDrawable = a.getDrawable(R.styleable.EditSpinner_dropDownDrawable);
int dropDownDrawableSpacing = a.getDimensionPixelOffset(R.styleable.EditSpinner_dropDownDrawableSpacing, 0);
if (mDropDownDrawable != null) {
int dropDownDrawableWidth = a.getDimensionPixelOffset(R.styleable.EditSpinner_dropDownDrawableWidth, -1);
int dropDownDrawableHeight = a.getDimensionPixelOffset(R.styleable.EditSpinner_dropDownDrawableHeight, -1);
setDropDownDrawable(mDropDownDrawable, dropDownDrawableWidth, dropDownDrawableHeight);
setDropDownDrawableSpacing(dropDownDrawableSpacing);
}
// Get the anchor's id now, but the view won't be ready, so wait to actually get the
// view and store it in mDropDownAnchorView lazily in getDropDownAnchorView later.
// Defaults to NO_ID, in which case the getDropDownAnchorView method will simply return
// this TextView, as a default anchoring point.
mDropDownAnchorId = a.getResourceId(R.styleable.EditSpinner_dropDownAnchor,
View.NO_ID);
// For dropdown width, the developer can specify a specific width, or MATCH_PARENT
// (for full screen width) or WRAP_CONTENT (to match the width of the anchored view).
mPopup.setWidth(a.getLayoutDimension(R.styleable.EditSpinner_dropDownWidth,
ViewGroup.LayoutParams.WRAP_CONTENT));
mPopup.setHeight(a.getLayoutDimension(R.styleable.EditSpinner_dropDownHeight,
ViewGroup.LayoutParams.WRAP_CONTENT));
mPopup.setOnItemClickListener(new DropDownItemClickListener());
mPopup.setOnDismissListener(new PopupWindow.OnDismissListener() {
@Override
public void onDismiss() {
mLastDismissTime = SystemClock.elapsedRealtime();
if (mOnDismissListener != null) {
mOnDismissListener.onDismiss();
}
}
});
a.recycle();
mIsEditable = getKeyListener() != null;
setFocusable(true);
addTextChangedListener(new MyWatcher());
Log.d(TAG, "mIsEditable = " + mIsEditable);
}
/**
* Creates an instance of the {@link StripLayoutHelper}.
* @param context The current Android {@link Context}.
* @param updateHost The parent {@link LayoutUpdateHost}.
* @param renderHost The {@link LayoutRenderHost}.
* @param incognito Whether or not this tab strip is incognito.
*/
public StripLayoutHelper(Context context, LayoutUpdateHost updateHost,
LayoutRenderHost renderHost, boolean incognito) {
mTabOverlapWidth = TAB_OVERLAP_WIDTH_DP;
mNewTabButtonWidth = NEW_TAB_BUTTON_WIDTH_DP;
mRightMargin = LocalizationUtils.isLayoutRtl() ? 0 : mNewTabButtonWidth;
mLeftMargin = LocalizationUtils.isLayoutRtl() ? mNewTabButtonWidth : 0;
mMinTabWidth = MIN_TAB_WIDTH_DP;
mMaxTabWidth = MAX_TAB_WIDTH_DP;
mReorderMoveStartThreshold = REORDER_MOVE_START_THRESHOLD_DP;
mUpdateHost = updateHost;
mRenderHost = renderHost;
mNewTabButton =
new CompositorButton(context, NEW_TAB_BUTTON_WIDTH_DP, NEW_TAB_BUTTON_HEIGHT_DP);
mNewTabButton.setResources(R.drawable.btn_tabstrip_new_tab_normal,
R.drawable.btn_tabstrip_new_tab_pressed,
R.drawable.btn_tabstrip_new_incognito_tab_normal,
R.drawable.btn_tabstrip_new_incognito_tab_pressed);
mNewTabButton.setIncognito(incognito);
mNewTabButton.setY(NEW_TAB_BUTTON_Y_OFFSET_DP);
mNewTabButton.setClickSlop(NEW_TAB_BUTTON_CLICK_SLOP_DP);
Resources res = context.getResources();
mNewTabButton.setAccessibilityDescription(
res.getString(R.string.accessibility_toolbar_btn_new_tab),
res.getString(R.string.accessibility_toolbar_btn_new_incognito_tab));
mContext = context;
mIncognito = incognito;
mBrightness = 1.f;
// Create tab menu
mTabMenu = new ListPopupWindow(mContext);
mTabMenu.setAdapter(new ArrayAdapter<String>(mContext, R.layout.bookmark_popup_item,
new String[] {
mContext.getString(!mIncognito ? R.string.menu_close_all_tabs
: R.string.menu_close_all_incognito_tabs)}));
mTabMenu.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
mTabMenu.dismiss();
if (position == ID_CLOSE_ALL_TABS) {
mModel.closeAllTabs(false, false);
}
}
});
int menuWidth = mContext.getResources().getDimensionPixelSize(R.dimen.menu_width);
mTabMenu.setWidth(menuWidth);
mTabMenu.setModal(true);
int screenWidthDp = context.getResources().getConfiguration().screenWidthDp;
mShouldCascadeTabs = screenWidthDp >= DeviceFormFactor.MINIMUM_TABLET_WIDTH_DP;
mStripStacker = mShouldCascadeTabs ? mCascadingStripStacker : mScrollingStripStacker;
mIsFirstLayoutPass = true;
}
/**
* Creates an instance of the {@link StripLayoutHelper}.
* @param context The current Android {@link Context}.
* @param updateHost The parent {@link LayoutUpdateHost}.
* @param renderHost The {@link LayoutRenderHost}.
* @param incognito Whether or not this tab strip is incognito.
*/
public StripLayoutHelper(Context context, LayoutUpdateHost updateHost,
LayoutRenderHost renderHost, boolean incognito) {
mTabOverlapWidth = TAB_OVERLAP_WIDTH_DP;
mNewTabButtonWidth = NEW_TAB_BUTTON_WIDTH_DP;
mRightMargin = LocalizationUtils.isLayoutRtl() ? 0 : mNewTabButtonWidth;
mLeftMargin = LocalizationUtils.isLayoutRtl() ? mNewTabButtonWidth : 0;
mMinTabWidth = MIN_TAB_WIDTH_DP;
mMaxTabWidth = MAX_TAB_WIDTH_DP;
mReorderMoveStartThreshold = REORDER_MOVE_START_THRESHOLD_DP;
mUpdateHost = updateHost;
mRenderHost = renderHost;
mNewTabButton =
new CompositorButton(context, NEW_TAB_BUTTON_WIDTH_DP, NEW_TAB_BUTTON_HEIGHT_DP);
mNewTabButton.setResources(R.drawable.btn_tabstrip_new_tab_normal,
R.drawable.btn_tabstrip_new_tab_pressed,
R.drawable.btn_tabstrip_new_incognito_tab_normal,
R.drawable.btn_tabstrip_new_incognito_tab_pressed);
mNewTabButton.setIncognito(incognito);
mNewTabButton.setY(NEW_TAB_BUTTON_Y_OFFSET_DP);
mNewTabButton.setClickSlop(NEW_TAB_BUTTON_CLICK_SLOP_DP);
Resources res = context.getResources();
mNewTabButton.setAccessibilityDescription(
res.getString(R.string.accessibility_toolbar_btn_new_tab),
res.getString(R.string.accessibility_toolbar_btn_new_incognito_tab));
mContext = context;
mIncognito = incognito;
mBrightness = 1.f;
// Create tab menu
mTabMenu = new ListPopupWindow(mContext);
mTabMenu.setAdapter(new ArrayAdapter<String>(mContext, R.layout.bookmark_popup_item,
new String[] {
mContext.getString(!mIncognito ? R.string.menu_close_all_tabs
: R.string.menu_close_all_incognito_tabs)}));
mTabMenu.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
mTabMenu.dismiss();
if (position == ID_CLOSE_ALL_TABS) {
mModel.closeAllTabs(false, false);
}
}
});
int menuWidth = mContext.getResources().getDimensionPixelSize(R.dimen.menu_width);
mTabMenu.setWidth(menuWidth);
mTabMenu.setModal(true);
int screenWidthDp = context.getResources().getConfiguration().screenWidthDp;
mShouldCascadeTabs = screenWidthDp >= DeviceFormFactor.MINIMUM_TABLET_WIDTH_DP;
mStripStacker = mShouldCascadeTabs ? mCascadingStripStacker : mScrollingStripStacker;
mIsFirstLayoutPass = true;
}
private void createPopupFolderList(int width, int height) {
folderPopupWindow = new ListPopupWindow(getActivity());
folderPopupWindow.setBackgroundDrawable(null);
folderPopupWindow.setAdapter(folderAdapter);
folderPopupWindow.setContentWidth(width);
folderPopupWindow.setWidth(width);
folderPopupWindow.setHeight(height * 5 / 8);
folderPopupWindow.setAnchorView(popupAnchorView);
folderPopupWindow.setModal(true);
folderPopupWindow.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
folderAdapter.setSelectIndex(i);
final int index = i;
final AdapterView v = adapterView;
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
folderPopupWindow.dismiss();
if (index == 0) {
getActivity().getSupportLoaderManager().restartLoader(LOADER_ALL, null, mLoaderCallback);
category_button.setText(R.string.all_folder);
callback.onChangeAlbum(context.getResources().getString(R.string.all_folder));
if (imageConfig.isShowCamera()) {
imageAdapter.setShowCamera(true);
} else {
imageAdapter.setShowCamera(false);
}
}
else {
Folder folder = (Folder) v.getAdapter().getItem(index);
if (null != folder) {
imageList.clear();
imageList.addAll(folder.images);
imageAdapter.notifyDataSetChanged();
category_button.setText(folder.name);
callback.onChangeAlbum(folder.name);
if (resultList != null && resultList.size() > 0) {
imageAdapter.setDefaultSelected(resultList);
}
}
imageAdapter.setShowCamera(false);
}
grid_image.smoothScrollToPosition(0);
}
}, 100);
}
});
}
/**
* Creates an instance of the {@link StripLayoutHelper}.
* @param context The current Android {@link Context}.
* @param updateHost The parent {@link LayoutUpdateHost}.
* @param renderHost The {@link LayoutRenderHost}.
* @param incognito Whether or not this tab strip is incognito.
*/
public StripLayoutHelper(Context context, LayoutUpdateHost updateHost,
LayoutRenderHost renderHost, boolean incognito) {
mTabOverlapWidth = TAB_OVERLAP_WIDTH_DP;
mNewTabButtonWidth = NEW_TAB_BUTTON_WIDTH_DP;
mRightMargin = LocalizationUtils.isLayoutRtl() ? 0 : mNewTabButtonWidth;
mLeftMargin = LocalizationUtils.isLayoutRtl() ? mNewTabButtonWidth : 0;
mMinTabWidth = MIN_TAB_WIDTH_DP;
mMaxTabWidth = MAX_TAB_WIDTH_DP;
mReorderMoveStartThreshold = REORDER_MOVE_START_THRESHOLD_DP;
mUpdateHost = updateHost;
mRenderHost = renderHost;
CompositorOnClickHandler newTabClickHandler = new CompositorOnClickHandler() {
@Override
public void onClick(long time) {
handleNewTabClick();
}
};
mNewTabButton = new CompositorButton(
context, NEW_TAB_BUTTON_WIDTH_DP, NEW_TAB_BUTTON_HEIGHT_DP, newTabClickHandler);
mNewTabButton.setResources(R.drawable.btn_tabstrip_new_tab_normal,
R.drawable.btn_tabstrip_new_tab_pressed,
R.drawable.btn_tabstrip_new_incognito_tab_normal,
R.drawable.btn_tabstrip_new_incognito_tab_pressed);
mNewTabButton.setIncognito(incognito);
mNewTabButton.setY(NEW_TAB_BUTTON_Y_OFFSET_DP);
mNewTabButton.setClickSlop(NEW_TAB_BUTTON_CLICK_SLOP_DP);
Resources res = context.getResources();
mNewTabButton.setAccessibilityDescription(
res.getString(R.string.accessibility_toolbar_btn_new_tab),
res.getString(R.string.accessibility_toolbar_btn_new_incognito_tab));
mContext = context;
mIncognito = incognito;
mBrightness = 1.f;
// Create tab menu
mTabMenu = new ListPopupWindow(mContext);
mTabMenu.setAdapter(new ArrayAdapter<String>(mContext, R.layout.bookmark_popup_item,
new String[] {
mContext.getString(!mIncognito ? R.string.menu_close_all_tabs
: R.string.menu_close_all_incognito_tabs)}));
mTabMenu.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
mTabMenu.dismiss();
if (position == ID_CLOSE_ALL_TABS) {
mModel.closeAllTabs(false, false);
}
}
});
int menuWidth = mContext.getResources().getDimensionPixelSize(R.dimen.menu_width);
mTabMenu.setWidth(menuWidth);
mTabMenu.setModal(true);
int screenWidthDp = context.getResources().getConfiguration().screenWidthDp;
mShouldCascadeTabs = screenWidthDp >= DeviceFormFactor.MINIMUM_TABLET_WIDTH_DP;
mStripStacker = mShouldCascadeTabs ? mCascadingStripStacker : mScrollingStripStacker;
mIsFirstLayoutPass = true;
}