ListPopupupwindow marign底部不起作用



我正在尝试在单击listView项目时显示列表popupupwindow。ListPopupupwindow中的项目可滚动。但是我无法给出底部的边距,它触及了屏幕的底部。

private ListPopupWindow getListMenu(Context context, View anchor, String[] options) {
    Context wrapper = new ContextThemeWrapper(context, R.style.ProfilePicPopUp);
    ListPopupWindow popupWindow = new ListPopupWindow(wrapper);
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(context,
            R.layout.listpopup_item, options);
    popupWindow.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
    popupWindow.setAdapter(adapter);
    popupWindow.setAnchorView(anchor);
    popupWindow.getAnimationStyle();
    popupWindow.setModal(true);
    popupWindow.setHorizontalOffset( (anchor.getWidth()*3)/4);
    popupWindow.setVerticalOffset(-anchor.getHeight()/4);
    DisplayMetrics metrics = context.getResources().getDisplayMetrics();
    int width = metrics.widthPixels;
    popupWindow.setWidth((width * 3) / 4); // note: don't use pixels, use a dimen resource

    return popupWindow;
}

ListPopup_item.xml

    <?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@android:id/text1"
    fontPath="Lato-Bold.ttf"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@drawable/profilepic_option_click_selector"
    android:ellipsize="marquee"
    android:gravity="center_vertical"
    android:paddingBottom="7dp"
    android:paddingEnd="15dip"
    android:paddingStart="14dip"
    android:paddingTop="7dp"
    android:text="sample"
    android:textColor="@color/white" />

i在listPopupupwindow中浏览代码,我包含一个listView,因此您可以尝试使用此代码来为ListView设置保证金底部。

   ViewGroup.MarginLayoutParams mlp = (ViewGroup.MarginLayoutParams) listPopupWindow.getListView()
            .getLayoutParams();
    mlp.setMargins(0, 0, 0, yourMarginBottom);

如果您想要灵活的ListView,则可以创建PopupWindow

的自定义视图

尝试一下。查看填充元件。

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:orientation="vertical"
   android:padding="10dip"        
   android:background="@color/colorbg">    
</LinearLayout>

最新更新