当前位置: 首页 > news >正文

网站制做网站的换肤功能怎么做

网站制做,网站的换肤功能怎么做,建筑网站案例,公司网站后台密码项目中要实现mfc功能#xff0c;然后子控件焦点下移#xff0c;LIstView和Gridview父控件不会下移#xff0c;所以就有这个文章。废话不多说直接上代码。 MFCGridView.java import android.content.Context; import android.util.AttributeSet; import android.view.View;…项目中要实现mfc功能然后子控件焦点下移LIstView和Gridview父控件不会下移所以就有这个文章。废话不多说直接上代码。 MFCGridView.java import android.content.Context; import android.util.AttributeSet; import android.view.View; import android.view.ViewParent; import android.view.ViewTreeObserver; import android.widget.GridView;import com.baidu.navisdk.ui.util.MFCUtil;public class MFCGridView extends GridView {protected int lastPosition -1;protected boolean mHasRegister false;private final ViewTreeObserver.OnGlobalFocusChangeListener mFocusChangeListener new ViewTreeObserver.OnGlobalFocusChangeListener() {Overridepublic void onGlobalFocusChanged(View oldFocus, View newFocus) {if (!isInTouchMode()) {refreshListViewScroll(oldFocus, newFocus);}}};protected void refreshListViewScroll(View oldFocus, View newFocus) {if (getVisibility() ! VISIBLE) {return;}if (newFocus null) {return;}ViewParent convertView getConvertView(newFocus);if (convertView null) {return;}if (!(convertView instanceof View)) {return;}Object tagView ((View) convertView).getTag();if (!(tagView instanceof IMFCHolder)) {if (lastPosition! getAdapter().getCount() - 1) {smoothScrollToPositionFromTop(0, 0);lastPosition -1;}return;}int focusedPosition -1;View focusedChild getFocusedChild();if (focusedChild ! null) {focusedPosition getPositionForView(focusedChild);}if (focusedPosition ! lastPosition) {smoothScrollToPositionFromTop(focusedPosition, 50);lastPosition focusedPosition;}}protected ViewParent getConvertView(View newFocus) {ViewParent lastView null;ViewParent parent newFocus.getParent();if (parent this){return (ViewParent) newFocus;}while (parent ! null) {if (parent this) {return lastView;}lastView parent;parent parent.getParent();}return null;}public MFCGridView(Context context) {super(context);setFocusableInTouchMode(false);}public MFCGridView(Context context, AttributeSet attrs) {super(context, attrs);setFocusableInTouchMode(false);}public MFCGridView(Context context, AttributeSet attrs, int defStyleAttr) {super(context, attrs, defStyleAttr);setFocusableInTouchMode(false);}Overrideprotected void onAttachedToWindow() {super.onAttachedToWindow();if (MFCUtil.isMFCEnable()) {if (!mHasRegister) {getViewTreeObserver().addOnGlobalFocusChangeListener(mFocusChangeListener);mHasRegister true;}}}Overrideprotected void onDetachedFromWindow() {super.onDetachedFromWindow();if (MFCUtil.isMFCEnable()) {getViewTreeObserver().removeOnGlobalFocusChangeListener(mFocusChangeListener);mHasRegister false;}clearDisappearingChildren();} } MFCGridView使用方法xml中直接引用即可无需其他操作 ---------------------------------------------------------分割线--------------------------------------------------------- 依赖类IMFCHolder.java public interface IMFCHolder {int getPosition(); }MFCListView.java import com.baidu.navisdk.ui.util.MFCUtil;import android.content.Context; import android.util.AttributeSet; import android.view.View; import android.view.ViewParent; import android.view.ViewTreeObserver; import android.widget.ListView;public class MFCListView extends ListView {protected boolean mHasRegister false;protected int lastPosition -1;private final ViewTreeObserver.OnGlobalFocusChangeListener mFocusChangeListener new ViewTreeObserver.OnGlobalFocusChangeListener() {Overridepublic void onGlobalFocusChanged(View oldFocus, View newFocus) {if (!isInTouchMode()) {refreshListViewScroll(oldFocus, newFocus);}}};protected void refreshListViewScroll(View oldFocus, View newFocus) {if (getVisibility() ! VISIBLE) {return;}if (newFocus null) {return;}ViewParent convertView getConvertView(newFocus);if (convertView null) {return;}if (!(convertView instanceof View)) {return;}Object tagView ((View) convertView).getTag();if (!(tagView instanceof IMFCHolder)) {if (lastPosition! getAdapter().getCount() - getHeaderViewsCount() - getFooterViewsCount()- 1) {smoothScrollToPositionFromTop(0, 0);lastPosition -1;}return;}IMFCHolder imfcHolder (IMFCHolder) tagView;int position imfcHolder.getPosition();if (position ! lastPosition) {smoothScrollToPositionFromTop(position getHeaderViewsCount(), 50);lastPosition position;}}protected ViewParent getConvertView(View newFocus) {ViewParent lastView null;ViewParent parent newFocus.getParent();if (parent this){return (ViewParent) newFocus;}while (parent ! null) {if (parent this) {return lastView;}lastView parent;parent parent.getParent();}return null;}public MFCListView(Context context) {super(context);setFocusableInTouchMode(false);}public MFCListView(Context context, AttributeSet attrs) {super(context, attrs);setFocusableInTouchMode(false);}public MFCListView(Context context, AttributeSet attrs, int defStyleAttr) {super(context, attrs, defStyleAttr);setFocusableInTouchMode(false);}public MFCListView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {super(context, attrs, defStyleAttr, defStyleRes);setFocusableInTouchMode(false);}Overridepublic View getFocusedChild() {return null;}Overrideprotected void onAttachedToWindow() {super.onAttachedToWindow();if (MFCUtil.isMFCEnable()) {if (!mHasRegister) {getViewTreeObserver().addOnGlobalFocusChangeListener(mFocusChangeListener);mHasRegister true;}}}Overrideprotected void onDetachedFromWindow() {super.onDetachedFromWindow();if (MFCUtil.isMFCEnable()) {getViewTreeObserver().removeOnGlobalFocusChangeListener(mFocusChangeListener);mHasRegister false;}clearDisappearingChildren();} }依赖类MFCUtil.java package com.baidu.navisdk.ui.util;import android.app.Activity;import com.baidu.naviauto.appcommon.AppLog;import java.util.ArrayList; import java.util.List;public class MFCUtil {private static final String TAG MFCUtil;public static final ListString REQUEST_CHECK_LIST_STRING new ArrayList();public static boolean isMFCEnable() {return true;}/*** 返回false 不消费 调用者可以request* 返回true 消费 调用者不可以request* param activity* param classname* return*/public static boolean requestCheck(Activity activity, String classname) {if (activity null) {return true;}if (!isMFCEnable()) {return true;}if (activity.getWindow().getDecorView().isInTouchMode()){return true;}checkRequestCheckList(activity);if (REQUEST_CHECK_LIST_STRING null) {AppLog.e(TAG, checkRequestCheckList classname);return false;}for (int i 0; i REQUEST_CHECK_LIST_STRING.size(); i) {if (REQUEST_CHECK_LIST_STRING.get(i).equals(classname)) {AppLog.e(TAG, false classname);return false;}}AppLog.e(TAG, false finish classname);return false;}public static void checkRequestCheckList(Activity activity) {if (REQUEST_CHECK_LIST_STRING ! null REQUEST_CHECK_LIST_STRING.size() 0) {REQUEST_CHECK_LIST_STRING.add(PowerNotification);REQUEST_CHECK_LIST_STRING.add(RestrictionTipsView);REQUEST_CHECK_LIST_STRING.add(RecommendTripTipsView);REQUEST_CHECK_LIST_STRING.add(PushPoiNaviNotificationView);REQUEST_CHECK_LIST_STRING.add(PushPoiNaviNotificationDialog);REQUEST_CHECK_LIST_STRING.add(NaviAutoActivity);}}public static void onDestory(){if (REQUEST_CHECK_LIST_STRING ! null){REQUEST_CHECK_LIST_STRING.clear();}} }MFCListView实际使用例子 1.xml代码中使用MFCListView类代替 2.adapter中核心代码如下 Overridepublic View getView(int position, View convertView, ViewGroup parent) {ViewHolder viewHolder;if (convertView null) {convertView LayoutInflater.from(mContext).inflate(R.layout.item_column, null);viewHolder new ViewHolder();viewHolder.textView convertView.findViewById(R.id.text);convertView.setTag(viewHolder);} else {viewHolder (ViewHolder) convertView.getTag();}viewHolder.position position;viewHolder.textView.setText(mProvinShotNameArr[position]);return convertView;}public static class ViewHolder implements IMFCHolder {TextView textView;int position;Overridepublic int getPosition() {return position;}} 实现成功子控件焦点滑到中间gridview父控件也跟着下滑了
http://www.w-s-a.com/news/773662/

相关文章:

  • 网站和app的开发成本saas系统开发教程
  • ps切片工具做网站大气简洁网站
  • 网至普的营销型网站建设wordpress邮箱验证插件下载
  • 找权重高的网站方法张家港早晨网站建设
  • WordPress数据库添加管理员关键词优化举例
  • 河南国基建设集团--官方网站wordpress qode
  • 做农村电子商务的网站有哪些内容静态网站模板古典
  • 导航网站设计方案个人网站推广方法
  • 网站排名易下拉教程防wordpress花园
  • 计算机网站建设 是什么意思现在网站建站的主流语言是什么
  • php网站跟随导航西安百姓网免费发布信息网
  • 濮阳做公司网站html5 特效网站
  • ppt设计器怎么打开深圳seo网络推广营销
  • 建设银行网站用360浏览器建设信用卡中心网站
  • 创建公司网站 教程广州建设局
  • 详述网站建设的过程简答题ui培训设计怎么样
  • 动易网站官网ppt主题大全素材
  • 怎样用eclipse做网站可以做宣传图的网站
  • 哪里可以做游戏视频网站做网站平台应该注意哪些
  • 网站后期推广是谁来做网页制作步骤作答题
  • 全屋装修设计定制整装成都网站优化多少钱
  • html5购物网站模板一个网站两个数据库
  • 个人网站怎么做微信支付网站建设项目介绍
  • 建网站合同网站适配移动端和PC端
  • 网站建设培训机构哪里好html5开发wap网站
  • 免费自助建站源码学而思网校官网
  • 中国最大的网站制作公司青海省高等级公路建设管局网站
  • 建设网站对服务器有什么要求吗wordpress去除更新提示
  • 找个为公司做网站的手机端原神
  • 邯郸手机建站价格公众号开发者权限哪里添加