公开标签 #Android开发
直接上代码: public class FriendsCircleImageLayout extends ViewGroup { /** * 显示的行数 */ private int mColumnCount; /** * 默认间距 */ private final float DEFAULT_SPACING = 2.5f; private float mSpacing; /** * 图片宽高比(党为多张图片的时候为1) * 一般在url中会有宽高 可计算 */ private float mItemA
当我们不满足于系统默认的activity动画交互方式,我们可以通过在主题里面,指定activity动画样式来实现自定义交互效果。 在style里面定义样式: <style name="DarkTheme" parent="Theme.AppCompat.Light.NoActionBar"> <item name="android:windowAnimationStyle">@style/activityAnimationUpDown</item> </style> <style name="activ
Anroid开发中,更改了数据,调用 adapter.notifyDataSetChanged() 后页面没有更新,首先检查更改的数据源 dataList 是否 adapter 初始化时的 dataList。 必须保证更新的 dataList 和 adapter 初始化时候 dataList 是同一个,而不是新enw出来的对象。 如果adapter的数据源需要重新赋值,可先调用 dataList.clear(),清除所有数据,再将新数据添加到 dataList 中。
将EditText设置不可编辑状态: android:editable="false" 使用时发现它已经被废弃了,虽然还可以用,但已经不推荐用该方法将EditText设置为不可编辑状态。 不过我们可以用代码完成此功能。 editText.setKeyListener(null); 下面实现 EditText 长按可复制功能。 找到EditText的类,发现它是继承自TextView。在TextView中设置可复制功能使用的是 textIsSelectable 属性: android:textIsSele
错误原因: 因为activity中的Dialog、PopupWindow不能脱离activity而单独存在。当Dialog、PopupWindow正在显示的时候而它们依附的activity却destroy了,就会出现WindowLeaked异常。 解决方案: 在activity的 onDestroy 里首先对Dialog、PopupWindow进行dismiss操作。
postDelayed 方法需要在主线程中操作 方法1(推荐): new Handler(Looper.getMainLooper()).postDelayed(new Runnable() { @Override public void run() { doSomething(); } },2000); 方法2: runOnUiThread(new Runnable() { @Override public void run() { new Handler().postDelayed(new Runn
EditText 如何获取焦点: edittext.setFocusable(true); edittext.setFocusableInTouchMode(true); edittext.requestFocus(); # 只使用以下代码也可以 edittext.requestFocus(); EditText 如何主动失去焦点: 方法1: 对 EditText 的父级 view 进行如下设置: android:focusable="true" android:focusableInTouchMode
Android开发中Glide显示本地资源,报错: Attempt to invoke virtual method 'int java.lang.Integer.intValue()' on a null object reference 问题原因: 1,int和Integer判断是否相等时出错 2,用到int的地方,实际传值是Integer (int是基本类型,存数值;integer是对象,用一个引用指向这个对象) 解决方案: 对Integer参数进行null判断,如果不为null,再将Intege
Fragment 在 Activity、ViewPager 中都会使用到,不同场景判断方法略有不同。 1,Activity 中的 Fragment 这种情况是最简单的。Activity中Fragment的生命周期是和Activity的生命周期一致的,当打开另外一个Activity的时候,只要监听Fragment的onResume和onPause方法就能够判断其显隐(如果Activity需要从一个Fragment切换到另外一个Frament,参考方法3) @Override public void onR
将 setTheme 的调用放到 super.onCreate() 前执行,设置的主题就会生效 @Override protected void onCreate(Bundle savedInstanceState) { # 在 super.onCreate 前调用 setTheme(R.style.xTheme); super.onCreate(savedInstanceState); setContentView(R.layout.x); ... }