Android——ListView,Toast,dialog小细节
来源:互联网 发布:windows bat关闭窗口 编辑:程序博客网 时间:2024/06/10 08:07
近一个月在做一个小项目,现在总结一下遇到的一些问题,都是小问题只是标记一下,一些小细节。
1.Toast显示问题,开始测试手机是ivvi CK3-01 手机,吐司能正常显示,后来改用魅蓝3s手机问题就出现了,不显示吐司了,查了资料才发现不仅是魅蓝3s手机,之前有华为3c也有这问题,那么问题来了,不知道什么时候就会有什么手机的吐司不显示了,那么很多交互提示信息就不显示了,极度影响用户体验,所以就想到能不能自定义一个Toast,结果大部分是在Toast的基础上更改显示效果,这样根本没有解决问题,后来发现这篇文章http://www.cnblogs.com/andgoo/p/3157691.html
完美解决我的问题,但是有一点点,他没贴上一个style文件,下面直接贴上我改的代码:
package view;import com.ppl.sxgtqx.R;import android.app.Activity;import android.content.Context;import android.os.Handler;import android.util.Log;import android.view.Gravity;import android.view.View;import android.view.ViewGroup;import android.view.animation.AlphaAnimation;import android.view.animation.Animation;import android.widget.LinearLayout;import android.widget.TextView;public class MyToast { private static final int ANIMATION_DURATION = 1000; private static final String TAG = "MyToast"; private int HIDE_DELAY = 5000; private View mContainer; private int gravity = Gravity.CENTER; private TextView mTextView; private Handler mHandler; private AlphaAnimation mFadeInAnimation; private AlphaAnimation mFadeOutAnimation; public MyToast(Context context,int hIDE_DELAY, int gravity) { super(); ViewGroup container = (ViewGroup) ((Activity) context) .findViewById(android.R.id.content); View v = ((Activity) context).getLayoutInflater().inflate( R.layout.my_toast, container); HIDE_DELAY = hIDE_DELAY; this.gravity = gravity; init(v); } private void init(View v) { mContainer = v.findViewById(R.id.mbContainer); mContainer.setVisibility(View.GONE); mTextView = (TextView) v.findViewById(R.id.mbMessage); mFadeInAnimation = new AlphaAnimation(0.0f, 1.0f); mFadeOutAnimation = new AlphaAnimation(1.0f, 0.0f); mFadeOutAnimation.setDuration(ANIMATION_DURATION); mFadeOutAnimation .setAnimationListener(new Animation.AnimationListener() { @Override public void onAnimationStart(Animation animation) { } @Override public void onAnimationEnd(Animation animation) { mContainer.setVisibility(View.GONE); } @Override public void onAnimationRepeat(Animation animation) { } }); mHandler = new Handler(); } public void show(String message) { mContainer.setVisibility(View.VISIBLE); Log.e(TAG, "set Visible"); ((LinearLayout) mContainer).setGravity(gravity | Gravity.CENTER_VERTICAL); Log.e(TAG, "set gravity"); mTextView.setText(message); Log.e(TAG, "set setText"); mFadeInAnimation.setDuration(ANIMATION_DURATION); mContainer.startAnimation(mFadeInAnimation); mHandler.postDelayed(mHideRunnable, HIDE_DELAY); } private final Runnable mHideRunnable = new Runnable() { @Override public void run() { mContainer.startAnimation(mFadeOutAnimation); } };}<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_gravity="center_vertical" android:gravity="center_vertical" android:orientation="horizontal" > <ImageView android:id="@+id/iv_item_logo" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_margin="25dp" android:background="@android:color/transparent"/> <LinearLayout android:layout_width="0dp" android:layout_weight="1" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:orientation="vertical"> <TextView android:id="@+id/tv_item_title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="@dimen/show_conn" android:textColor="@color/black" /> <TextView android:id="@+id/tv_item_conn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="@dimen/ed_sub_info" android:textColor="@color/gray_light"/> </LinearLayout></LinearLayout><?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android" > <solid android:color="#B0000000"/> <corners android:radius="8px" /> <stroke android:color="#B0000000" android:width="1px"/> <padding android:top="2dp" android:bottom="2dp" android:left="2dp" android:right="2dp"/></shape>
ok,Toast就mark到这,接下来ListView
2.ListView
(1)item没含有button类控件 onItemClick冲突
解决方法
(2)当绑定数据变化时,notify后数据没响应,可能的原因绑定的data = new 数据,尽量不要这样,可以让data.clear 然后add(query)数据。
(3)响应item内部控件的点击事件,
解决方法
ok,ListView也mark到这了,接下来Dialog。
3.Dialog,有时用系统自带的dialog总觉得不好看,所以要自定义了,我一般用两种方法:一,定义一个Activity类,在XML中设置其style dialog,二,在dialog中引入XML文件。
0 0
- Android——ListView,Toast,dialog小细节
- Android开发之————Toast、Dialog、SnackBar
- Android---自定义Dialog、Toast
- Android Dialog 与 Toast
- Android 自定义Toast、Dialog
- ListView常用小细节
- android 自定义Dialog 和toast
- Android提醒:Dialog,Toast,Snackbar
- Android dialog,toast,snackbar小节
- 04小细节---关于dialog
- 笔记——Android 中的小细节
- Android第四讲——常用的基本控件(三)Toast、Dialog、PopupWindows、Notification(通知)、ViewPager
- Android开发——你真的了解Dialog、Toast和Snackbar吗
- Android基础控件使用细节——ListView
- Android Toast进阶——自定义Toast
- Android——Toast
- Android—Toast
- android开发之Dialog和Toast
- 技术干货
- WKWebView的使用
- Elasticsearch 5.2 增删改查
- Qt程序打包发布方法(使用官方提供的windeployqt工具)
- 嵌入式Linux使用Busybox init进程启动过程分析
- Android——ListView,Toast,dialog小细节
- python 3.X urllib工具库初体验——CMD模式有道翻译
- poj1488 字符串处理
- 1097. Deduplication on a Linked List (25)
- 样式化加载失败的图片
- poj1258 最小生成树,prim
- [HNOI2013]切糕
- Curling 2.0 POJ
- poj 1230 贪心法