popupWindow的一个坑
PopupWindow这东西可以说大量存在于各种app里,popupWindow = new PopupWindow(popupWindowView, DP2PX.dip2px(this, 149F), LinearLayout.LayoutParams.WRAP_CONTENT, true);
通常会这么写,最后一个true表示获取焦点,这样做有一个好处,当点击pop以外的区域,都会让pop消失,同时因为焦点在pop上,点击外面的按钮因为按钮没有焦点所以不会触发点击事件。这也是符合一般用户习惯的,如下图
西卡西!!!如果我要相应外部的点击事件呢?
如果你认为:那好办,调用另一个构造方法,不获取焦点不就行了。
曾经我也是这么的年轻。。。不获取焦点,确实能够让外部响应点击事件,然而
弹出pop的那个按钮也响应了点击事件了啊喂!! 用户习惯通常应该是点击一次,弹出popup,再点击一次,消失啊!
这样爽么?这肯定不是我们想要的
那么如何让这个按钮不要响应点击事件或者响应了点击事件但是关闭pop而不是再次打开呢
你可能又会想到:监听pop的开闭状态,搞个变量记住,在点击事件里根据 ...
一个方便做轮播图的工具
首先导入包
12compile 'com.youth.banner:banner:1.4.2'compile 'com.github.bumptech.glide:glide:3.7.0'
当然不用glide,用picasso,fresco都是可以的
然后写一个加载类,如果是用Glide的话,就这么写
123456789101112131415161718192021222324252627282930313233343536373839404142package com.aidebar.demo;import android.content.Context;import android.widget.ImageView;import com.bumptech.glide.Glide;import com.youth.banner.loader.ImageLoader;/** * @author xzj * @date 2016/11/21 11:27. */public class GlideImageLoader extends Ima ...
webview播放视频并且点击全屏横屏的方法
首先initWebView,好吧有点多,有些是项目里其他需求需要的,不要在意这些细节···
12345678910111213141516171819202122232425public static void initWebView(WebView webView) { WebSettings settings = webView.getSettings(); settings.setUseWideViewPort(true); // 关键点 settings.setAllowFileAccess(true); // 允许访问文件 settings.setSupportZoom(true); // 支持缩放 settings.setLoadWithOverviewMode(true); settings.setJavaScriptEnabled(true);// settings.setPluginState(PluginState.ON);// settin ...
自动联想和补全的textview
自动联想和补全的textview在需求中还是很常见的,首先在布局中
12345678910111213141516171819<AutoCompleteTextView android:id="@+id/et_phone" android:hint="@string/please_input_phonenum" android:drawableStart="@mipmap/phone_num_icon" android:drawablePadding="15dp" android:paddingStart="23dp" android:maxLength="11" android:inputType="phone" android:background="@drawable/shape_roundrec_fff" ...
查看apk签名信息
keytool -list -v -keystore xxxx -storepass xxxx
设置背景比较器失败
错误:<item> tag requires a 'drawable' attribute or child tag defining a drawable
设置背景选择器的时候像常用的那样
12345<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true" android:color="@color/leftmenu_pressed" /> <item android:color="@color/leftmenu_bg" /></selector>
就会报错,目前只有在设置背景的时候碰到过。
解决办法
好吧,提示说我少drawabl ...
radioGroup.clearCheck()的坑
遇到的问题说到radioGroup的时候,我们肯定会这么用
12345radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { @Override public void onCheckedChanged(RadioGroup group, int checkedId) { });
项目中一个地方,radioGroup和一个popupWindow里的选项是只能选一个的,所以我是在popupWindow里被选中的时候调用了radioGroup.clearCheck()然而发现pop里的点击事件无效。。反而是清除掉的radioButton的点击事件又被执行了一次。
解决办法在其他地方radioGroup.clearCheck() 之前,设个标记表示我要开始清理checked状态了,在OnCheckedChangeListener()里通过这个标记来过滤掉这种情况
让侧边栏被拉出的时候出现在状态栏下面
沉浸式状态栏这个东西很多人都说过,4.4开始可以设置透明状态栏了,5.0开始可以直接设置状态栏颜色了,所以基本思路就是:5.0直接改就好了,4.4就是设置成透明的,然后在填充一个view放在状态栏下面,基本代码就是下面这样了(摘自hongyang的博客)
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475import android.app.Activity;import android.graphics.Color;import android.os.Build;import android.view.View;import android.view.ViewGroup;import android.view.Window;import android.view.WindowManager;/** * @author xzj * @date 2016/ ...
设置背景比较器失败
错误:<item> tag requires a 'drawable' attribute or child tag defining a drawable
设置背景选择器的时候像常用的那样
12345<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true" android:color="@color/leftmenu_pressed" /> <item android:color="@color/leftmenu_bg" /></selector>
就会报错,目前只有在设置背景的时候碰到过。
解决办法
好吧,提示说我少drawabl ...
RetrofitUtils的工具类
直接上代码 ,一个RetrofitFactory,一个ApiFactory
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758package com.aidebar.retrofitutils.Utils.RetrofitUtils;import okhttp3.OkHttpClient;import retrofit2.Retrofit;import retrofit2.adapter.rxjava.RxJavaCallAdapterFactory;import retrofit2.converter.gson.GsonConverterFactory;/** * @author xzj * @date 2016/8/25 09:37. * 用于获取配置好的retrofit对象 * 需要先调用setBaseUrl,如果项目中BaseUrl不变,可以写死 */public class RetrofitFactory ...