7

我尝试了很多东西但没有得到任何解决方案,我在运行时设置文本,我需要根据文本大小 LinearLayout viewGroup = (LinearLayout) ((Activity) context) .findViewById(R.id.popup);

        LayoutInflater layoutInflater = (LayoutInflater) context

        .getSystemService(Context.LAYOUT_INFLATER_SERVICE);

        View layout = layoutInflater.inflate(R.layout.popup_layout, viewGroup);
        title_tv = (TextView) layout.findViewById(R.id.popup_txt);

        title_tv.setText(title_P);


         PopupWindow popup = new PopupWindow(context);
final float SCALE = layout.getResources().getDisplayMetrics().density;
int mode = MeasureSpec.getMode(View.MeasureSpec.UNSPECIFIED);
        int measuredWidth = MeasureSpec.getSize(View.MeasureSpec.UNSPECIFIED);
 popup.setWidth(measuredWidth);
         popup.setHeight(60);


        popup.setContentView(layout);
        //popup.setWindowLayoutMode();

        popup.setFocusable(true);
4

1 回答 1

17

采用:

popup.setWidth(WindowManager.LayoutParams.WRAP_CONTENT);

另外,如果适用:

popup.setHeight(WindowManager.LayoutParams.WRAP_CONTENT);

但是,请确保您没有在 popup_layout 的内容中使用 fill/match_parent,因为这没有意义(即弹出设置为包装其内容,并且内容说让我和我的父母一样大)。发布您的 popup_layout XML 以获得更准确的答案。

于 2013-01-06T11:47:00.833 回答