2017-02-20 31 views
0

Я пытаюсь показать ListPopupWindow при нажатии элемента listview. Элементы в ListPopupWindow прокручиваются. Но я не могу дать ему нижнюю границу, и она касается нижней части экрана.ListPopupWindow marign bottom not working

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" /> 
+0

Не могли бы вы опубликовать 'макет xml'? –

ответ

0

я просматриваю коды в ListPopupWindow, я содержу ListView, так что вы можете попробовать это коды, чтобы установить маржу дна для ListView.

ViewGroup.MarginLayoutParams mlp = (ViewGroup.MarginLayoutParams) listPopupWindow.getListView() 
      .getLayoutParams(); 

    mlp.setMargins(0, 0, 0, yourMarginBottom); 

Если вы хотите гибкий ListView, вы можете создать собственный вид PopupWindow

+0

Спасибо RoShan. Работает. – Arunkrishna

0

Попробуйте это. Посмотрите на элемент прокладки.

<?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> 

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

  • Нет связанных вопросов^_^