浅谈Toast实际开发中的应用需求之设定位置或自定义布局
来源:互联网 发布:钢笔淘宝店 编辑:程序博客网 时间:2024/05/23 16:39
原生的安卓Toast提示栏在UI界面底端,若与用户交互的焦点在屏幕偏上方,则需要稍作调整以达到友好的提示用户相关信息的需求。
1)Toast提示有两个Toast类的静态方法,需区别开来。
①Toast.maketext(Context context,Charsequence text,int duration).show();Context上下文,“Charsequence text”来设定提示用户的提示,里面设定的字符串内容。int duration 参数支持Toast类提供的静态常量,LENGTH_SHORT/0 表示短时间,LENGTH_LONG/1表示长时间
②Toast makeText(Context context, StringRes int resId, Duration int duration) 在源代码中可以看出
① 与② 就中间参数有点差异,返回的结果则差之千里,①返回的是Toast对象②返回的是本身,源代码中这个API 除了抛了个异常throws Resources.NotFoundException之外什么都没做。
2)下面谈一下实际应用,通常我们在代码中用如下来创建一个提示:
3)原生的Toast我们一般在开发过程中用用没问题,如果在开发的App中有的需要设置Toast提示的位置,达到提示的醒目的友好目的,那么就需要我们设定位置或者自定义布局来达到需求了。实现步骤如下:
①先通过Toast的无参构造方法new一个Toast对象,然后调用Toast对象的setView (View view)方法 需要传入一个view 对象。
②调用Context.getSystemService(Context.LAYOUT_INFLATER_SERVICE)获得LayoutInflater 对象inflate
③调用inflate.inflate(int resource, ViewGroup root)即可获得view对象
④调用Toast.setGravity(int gravity, int xOffset, int yOffset)设置消息提示的位置
⑤调用Toast对象的show()方法即可达到目的。
public static Toast makeText(Context context, CharSequence text, int duration) {
Toast result = new Toast(context);
LayoutInflater inflate = (LayoutInflater)
context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View v = inflate.inflate(com.android.internal.R.layout.transient_notification, null);
TextView tv = (TextView)v.findViewById(com.android.internal.R.id.message);
tv.setText(text);
result.mNextView = v;
result.mDuration = duration;
return result;
}
- 浅谈Toast实际开发中的应用需求之设定位置或自定义布局
- 浅谈实际开发中数据源在JDBC中的应用
- 浅谈实际开发中数据源在JDBC中的应用
- Android 弹无虚发之第五弹:来点儿不一样的Toast(自定义Toast,设置Toast显示位置,自定义Toast的复杂布局)
- Nginx应用中的一些实际需求解决方案
- Android应用开发学习—Toast的使用(位置变化及重新自定义)
- android开发之自定义toast
- 泛型--浅谈在实际中的应用一
- 自定义Toast样式,位置
- Json转换利器Gson之实例五-实际开发中的特殊需求处理
- Json转换利器Gson之实例五-实际开发中的特殊需求处理
- Json转换利器Gson之实例五-实际开发中的特殊需求处理
- Json转换利器Gson之实例五-实际开发中的特殊需求处理
- Json转换利器Gson之实例五-实际开发中的特殊需求处理
- Json转换利器Gson之实例五-实际开发中的特殊需求处理
- Json转换利器Gson之实例五-实际开发中的特殊需求处理
- Json转换利器Gson之实例五-实际开发中的特殊需求处理(手动解析-TypeToken)
- Json转换利器Gson之-实际开发中的特殊需求处理(手动解析-TypeToken处理)
- 自己动手实现操作系统引导程序(OS bootloader)——借助QEMU/GDB/losetup/dd等工具
- Java进程与多线程
- ios 使用谓词实现分组排序
- 面向对象_什么时候定义成员变量
- Velt中的编译参数检测
- 浅谈Toast实际开发中的应用需求之设定位置或自定义布局
- [LeetCode题解]从两个有序数组的并集中寻找第k小元素
- 前端收藏
- 图片自动缩小的代码
- 【置顶】linux你需要记忆的文件及其作用
- 即见即听即所得,网页视频音乐下载利器-收费音乐免费下
- NDK 一步一步了解jni
- phpexcel无法读取
- u3D开发学习之路--创建多层血条脚本