公开标签 #Android开发
Android数据存储的五种方式 使用SharedPreferences存储数据 文件存储数据 SQLite数据库存储数据 使用ContentProvider存储数据 网络存储数据 使用SharedPreferences存储数据 它是Android提供的用来存储一些简单配置信息的一种机制,采用了XML格式将数据存储到设备中。只能在同一个包内使用,不能在不同的包之间使用。 文件存储数据 文件存储方式是一种较常用的方法,在Android中读取/写入文件的方法,与Java中实现I/O的程序是完全一样的,提供了
ViewPager2嵌套Fragment时候,本想ViewPager2的高度设定为:wrap_content自适应Fragment高度。结果是ViewPager2的高度异常,页面短的Fragment下面留有很大空白。网上有很多重写ViewPager的方法去自适应高度,这是个办法。但我就想用ViewPager2,可ViewPager2没有办法被自定义,于是stackoverflow… 解决问题: inner class PageChangeCallback : ViewPager2.OnPageChang
之前我们讲过,在优化onCreateViewHolder方法的时候,可以降低item的布局层级,可以减少界面创建的渲染时间,其本质就是降低view的inflate时间。因为onCreateViewHolder最大的耗时部分,就是view的inflate。相信读过LayoutInflater.inflate源码的人都知道,这部分的代码是同步操作,并且涉及到大量的文件IO的操作以及锁操作,通常来说这部分的代码快的也需要几毫秒,慢的可能需要几十毫秒乃至上百毫秒也是很有可能的。 如果真到了每个ItemView的
隐藏软键盘的终极方法: 复制代码 public class SoftKeyboardUtil { /** * 隐藏软键盘(只适用于Activity,不适用于Fragment) */ public static void hideSoftKeyboard(Activity activity) { View view = activity.getCurrentFocus(); if (view != null) { InputMethodManager inputMethodManager = (Input
一、Toast的定义 Toast是Android系统提供的一种消息提示框,可以用来显示一些简短的消息,比如操作成功、失败等。Toast是一种非阻塞的消息提示,可以在Activity中显示,可以在屏幕的任何位置显示,它不会影响用户的正常操作,用户可以在任何时候取消Toast消息。 二、自定义Toast 自定义Toast就是指可以自定义Toast的显示内容和位置,以及Toast显示的时间长短等。实现自定义Toast可以通过LayoutInflater类来实现,可以使用LayoutInflater类来创建一个
代码种设置 使用 setBackgroundDrawableResource dialog.getWindow().setBackgroundDrawableResource(android.R.color.transparent);//设置背景透明 下面写的一个半自定义的弹框,(这个主要是写了了插入布局,没有通用自己就不叫它自定义了) AlertDialog.Builder builder = new AlertDialog.Builder(mActivity); builder.setCancela
说明:本人曾经在listview嵌套gridview出现过这样一个问题。大家知道 listview或者scrollView一般嵌套Gridview的时候,一般都要重新gridview的方法。所以。我写完就嵌套了。刚开始没发现什么问题,正常。不过突然发现一直会有gridview对应的dapter无限制执行,无限制打印log日志。最后就找解决方法。当然我的解决方法是: 1;首先将布局文件初始化操作放在了onActivityCreated()方法中 2;我在执行的时候首先因此了listview的布局,然后等数
/** * RecyclerView滚动到指定位置 */ var mToPosition:Int = 0 // 记录目标项位置 var mShouldScroll:Boolean = false // 目标项是否在最后一个可见项之后 fun smoothMoveToPosition(mRecyclerView: RecyclerView,position:Int){ // 第一个可见位置 var firstItem = mRecyclerView.getChildLayoutPosition(mRecy
要实现直接跳转到指定页面,而不是滑动到指定页面,可以使用ViewPager2的setCurrentItem(int index, boolean smoothScroll)方法。 此方法可以将ViewPager2直接滚动到指定页面,而不是通过滑动向右或向左移动。 示例代码: int pageIndex = 2; // 指定页面的索引 viewPager2.setCurrentItem(pageIndex, false); // 直接跳转到指定页面 第二个参数表示是否启用平滑滚动。如果为true,则Vie
ViewPage2是ViewPage的取代者,解决了一些解决了其前辈ViewPage的大部分难题,包括从右到左的布局支持,垂直方向,可修改的Fragment集合等。从易用性上来说ViewPage2的确会比ViewPage更简单,并且它实际上是使用RecyclerView实现的。源码里可以很容易看到,另外它的适配器也是RecyclerView.Adapter。 特别注意 在developer官网上,已经说明了 ViewPager2在导航键翻页(TV模式),根本没实现。所有,如果你的是TV应用,原则上不建议