Android 自定义Popupwindow 注意事项,手机和平板的区别

首先自定义ppw是要继承Popupwindow 的

而要成功的显示出自定义的ppw就必须实现下面的三句代码

// 必要的三要素下面,不然popWind显示不出来
this.setContentView(mView);
this.setWidth(ViewGroup.LayoutParams.MATCH_PARENT);
this.setHeight(ViewGroup.LayoutParams.MATCH_PARENT);

//上面的代码是必须设置的,不然ppw显示不出来。

this.setFocusable(true);// 使popwind中获取不到焦点,默认是false,这里是为了使EditText没有焦点,从而不会弹出输入框

this.setBackgroundDrawable(new BitmapDrawable());
this.setOutsideTouchable(true); // 点击popwind以外的地方关闭popWind

//这两句代码我要来解释一下

(1)、setFocusable()这个方法如同上面的解释一样,但我要提醒的是:

    如果你自定义的ppw包含了ListView这个控件并设置了OnItemClickListener事件,

    因为我在项目开发中遇到这个问题所以提出来,这句代码在手机端的时候不管你设置了true还是false  ,ListView的OnItemClickListener事件都会触发,但在Android平板中设置了false是不会触发OnItemClickListener这个事件的,所以要提醒大家注意一下

(2)、setOutsideTouchable()这个方法的说明就是点击ppw以外的地方关闭ppw,但如果你这么就设置为true的话,那么告诉你这是不起任何作用的,别问我为什么,因为我也不知道,如果想要起作用就必须还要设置这个setBackgroundDrawable(new BitmapDrawable());// 这样设置才能点击屏幕外dismiss窗口  ,这两句代码同时使用才能起到效果

时间: 2024-12-15 06:56:15

Android 自定义Popupwindow 注意事项,手机和平板的区别的相关文章

Android自定义照相机注意事项

1.设置预览方向myCamera.setDisplayOrientation(90) 2.设置照片方向parameters.setRotation(90); 3.设置预览显示和照片的分辨率 // 设置照片分辨率 List<Camera.Size> previewSizeList = parameters .getSupportedPreviewSizes(); int previewWidth = 0; int previewHeight = 0; for (int i = 0; i <

Android 判断当前设备是手机还是平板

Android开发需要适配手机和平板,有些需求实现时就要求判断设备是手机还是平板.网上很多说通过设备尺寸.DPI.版本号.是否具备电话功能等进行判断,不过都不算太精确.这里分享一个简洁给力的方法(官方用法): /** * 判断当前设备是手机还是平板,代码来自 Google I/O App for Android * @param context * @return 平板返回 True,手机返回 False */ public static boolean isPad(Context contex

Android 自定义PopupWindow以及参数传递与返回

在这篇博客之前,还写了一篇关于PopupWindow,那篇主要是关于PopupWindow弹出位置的设置.以及选择PopupWindow布局后的监听.详情看Android popupwindow 示例程序一.接下来这篇主要是讲自定义PopupWindow以及参数传递与返回,我在里面写了一个listview来示例.接下来看代码,都有所注释. 本文项目资源下载: 一.MainActivity <span style="background-color: rgb(240, 240, 240);&

Android 自定义PopupWindow动画效果

public class RollActivity extends Activity { private View view; private Button btn; private PopupWindow mPopupWindow; private View[] btns; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { s

很牛逼的android真机调试,手机、平板、电视都可

1.首先通过路由器,搭建局域网 2.手机开wifi,记住ip地址,平板开wifi,记住ip地址,电视开wifi,记住ip 3.然后再eclipse里面“窗口-首选项-android-ddms里面设置使用adb主机,填写ip地址”,点击确定 4.“窗口-打开透视图-其他-选择DDMS” 5.之后点击打开的DDMS,然后选择窗口,在右边,和最大化最小化一起的一个向下箭头的三角形,点击展开这个下拉列表,选择重启adb,这样子就查看日志里面是不是链接成功了,链接成功之后就可以肆无忌惮的进行程序的调试和运

Android 自定义PopupWindow类似iOS的ActionSheet

效果图如下: 核心代码: package com.zms.actionsheet; import android.app.Dialog; import android.content.Context; import android.content.DialogInterface.OnCancelListener; import android.view.Gravity; import android.view.LayoutInflater; import android.view.View; i

Android手机平板两不误,使用Fragment实现兼容手机和平板的程序

本文首发于CSDN博客,转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/8744943 记得我之前参与开发过一个华为的项目,要求程序可以支持好几种终端设备,其中就包括Android手机和Android Pad.然后为了节省人力,公司无节操地让Android手机和Android Pad都由我们团队开发.当时项目组定的方案是,制作两个版本的App,一个手机版,一个Pad版.由于当时手机版的主体功能已经做的差不多了,所以Pad版基本上就

android判断设备是手机还是平板method

/** * 判断当前设备是手机还是平板,代码来自 Google I/O App for Android * @param context * @return 平板返回 True,手机返回 False */ public static boolean isTablet(Context context) { return (context.getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_

自定义适用于手机和平板电脑的 Dynamics 365(二):窗体自定义项

适用于手机的 Dynamics 365 和 适用于平板电脑的 Dynamics 365 使用窗体作为 Web 应用. 窗体在应用程序中的显示方式为移动体验进行了优化. 下图显示了从 Web 应用程序到平板电脑和手机应用程序的回流: Web 应用程序 平板电脑应用程序 手机应用程序 适用于手机和平板电脑的 Dynamics 365 不提供窗体切换功能. 如果实体有多个主窗体,则显示的主窗格将取决设置的窗体顺序以及分派给窗体的安全角色.详细信息: 当自定义窗体时,可隐藏以下来自 适用于手机的 Dyn