【问题标题】:how to inflate a view on click of cardview?如何在点击卡片视图时放大视图?
【发布时间】:2016-11-23 05:07:11
【问题描述】:

任何想法如何在点击CardView 时增加这种类型的视图。以及如何在图像中设计这样的角落?

提前致谢

【问题讨论】:

  • 点击 CardView 打开对话框并将 9patch 图像设置为该对话框
  • 使用 9-patch 图像。
  • 您有任何示例或链接吗?
  • 添加您的 onItemClickListner 代码
  • @i_m_mahii onBindViewHolder 我添加了我的 holder.item.setOnClickListener。但我认为不需要。因为我没有写任何代码来膨胀这种类型的布局

标签: android view android-inflate


【解决方案1】:

在 OnClick 中,您可以显示 PopupWindow。像任何其他布局一样为其创建 xml 布局,然后在 onCreateView/onCreate 中像这样膨胀视图

View popupView = layoutInflater.inflate(R.layout.popup, null);

您只需从那里创建和配置 PopupWindow。

PopupWindow popup = new PopupWindow(popupView);

然后在你的 onClickListener 中调用popup.showAsDropDown(anchor);

关于角,您应该能够使用正方形/矩形在 xml 中创建它,然后将其旋转以形成三角形。从那里将其包含在您的 R.layout.popup 中

查看 https://developer.android.com/reference/android/widget/PopupWindow.html 了解它的 api 以及如何配置它。

【讨论】:

    【解决方案2】:

    我使用 PopupWindow 解决了我的问题

       final PopupWindow popup = new PopupWindow();
                View layout = getLayoutInflater(savedInstanceState).inflate(R.layout.popup_layout, null);
                try {
                    final Button b1 = (Button) layout.findViewById(R.id.cancel_action);
                    final  Button b2 = (Button) layout.findViewById(R.id.quantity_action);
                    final Button b3 = (Button) layout.findViewById(R.id.link_action);
                    b1.setOnClickListener(new View.OnClickListener() {
                        @Override
                        public void onClick(View view) {
                            paymentoptionedt.setText("Cash");
                            Toast.makeText(getContext(),"Cash",Toast.LENGTH_SHORT).show();
                            popup.dismiss();
                        }
                    });
                    b2.setOnClickListener(new View.OnClickListener() {
                        @Override
                        public void onClick(View view) {
                            paymentoptionedt.setText("Card");
                            Toast.makeText(getContext(),"Card",Toast.LENGTH_SHORT).show();
                            popup.dismiss();
                        }
                    });
                    b3.setOnClickListener(new View.OnClickListener() {
                        @Override
                        public void onClick(View view) {
                            paymentoptionedt.setText("Link Pay");
                            Toast.makeText(getContext(),"Link Pay",Toast.LENGTH_SHORT).show();
                            popup.dismiss();
                        }
                    });
                }catch (Exception e){
                    e.printStackTrace();
                }
    
                popup.setContentView(layout);
                popup.setHeight(WindowManager.LayoutParams.WRAP_CONTENT);
                popup.setWidth(WindowManager.LayoutParams.WRAP_CONTENT);
                popup.setOutsideTouchable(true);
                popup.setFocusable(true);
                popup.setBackgroundDrawable(new BitmapDrawable());
                popup.showAsDropDown(view);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-18
      • 1970-01-01
      • 1970-01-01
      • 2014-01-16
      相关资源
      最近更新 更多