2017-08-24 21 views
0

私は、PopupWindowの下端がButtonの上端と揃うように、そのすぐ上にPopupWindowを表示しようとしています。私は様々なGravityとgetHeightの可能性を持って遊んだことがありますが、それを正しくすることはできませんでした。Android PopupWindow showAtLocation above button

私は下に重力を設定することを考えているだろう - 下にPopupWindowを合わせ、次にボタンの高さによって、それを押し上げが働くだろう:

popupWindow.showAtLocation(view, Gravity.LEFT|Gravity.BOTTOM, 0, button.getHeight()); 

をしかし、それは唯一のPopupWindowに端数を上げますほとんどのボタンをカバーする画面の下部から外します。

答えて

0

これを試してください。

R.style.PopupMenu

<style name="PopupMenu" parent="Widget.AppCompat.PopupMenu.Overflow"> 
    <item name="android:itemTextAppearance">@color/red</item> 
    <item name="android:dropDownVerticalOffset">25dp</item> 
    <item name="android:listPreferredItemHeightSmall">42dp</item> 
    <item name="android:dropDownHorizontalOffset">16dp</item> 
</style> 

とJavaコードでPopupMenuにこのスタイルを適用します。

Context wrapper = new ContextThemeWrapper(getContext(), R.style.PopupMenu); 
final PopupMenu popupMenu = new PopupMenu(wrapper, v); 
+0

このコードが、ボタンに関連してPopupMenuの位置にどのように役立つかわかりません。それがポップアップするときに素敵なアニメーションを作成することだけがそうするように思われる。私はshowAtLocationを使用したいのですか、それとも他のトリックですか? –