ListPopupWindow在TextInputLayout中无法正确显示

时间:2015-12-01 21:41:21

标签: android material-design android-support-library android-design-library

我正在尝试将自定义setString()添加到ListPopupWindow中包含的TextViewTextInputLayout有一个OnClick侦听器,可以创建并显示TextView。实际上,我正在开发一个自定义Spinner。

如果我将ListPopupWindow更改为TextInputLayoutLinearLayout会正确显示。否则,视觉错误是弹出窗口底部的额外填充。

XML:

ListPopupWindow

CustomTextView:

<android.support.design.widget.TextInputLayout
 android:layout_width="match_parent"
 android:layout_height="wrap_content">

   <com.project.CustomTextView
       android:layout_width="match_parent"
       android:layout_height="wrap_content"/>

</android.support.design.widget.TextInputLayout>

结果:

(这只是我正在研究的非泛型实现。请注意列表的剪切底部。那里有一个~30dp的填充,无法删除)。 Notice the clipped bottom

1 个答案:

答案 0 :(得分:0)

对于任何试图解决此问题的人:TextInputLayout是弹出窗口的锚点视图肯定是个问题。这是我现在如何解决它。基本上,将LinearLayout添加到TextInputLayout并使用父级作为上下文。

    LinearLayout menuAnchor = new LinearLayout(((ViewGroup) getParent()).getContext());
    addView(menuAnchor, 0);

    popup = new ListPopupWindow(menuAnchor.getContext());
    popup.setAnchorView(menuAnchor);