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

网站在线服务模块怎么做测试/在线识别图片百度识图

网站在线服务模块怎么做测试,在线识别图片百度识图,信息公开和网站建设工作总结,为什么有的网页打不开怎么解决activityfragment的软件框架中,多级页面的fragment一般都有动画效果,现在将动画的实现方法总结如下。方法一重写fragment 的onCreateAnimation方法。在fragment的基类中,重写onCreateAnimation方法,使得fragment有进入和退出的动画…

activity+fragment的软件框架中,多级页面的fragment一般都有动画效果,现在将动画的实现方法总结如下。

方法一

重写fragment 的onCreateAnimation方法。

在fragment的基类中,重写onCreateAnimation方法,使得fragment有进入和退出的动画效果。

public abstract class ChildFragment extends Fragment {

public IContainerFragment getContainerFragment() {

Fragment parentFragment = getParentFragment();

if (parentFragment instanceof IContainerFragment) {

return (IContainerFragment) parentFragment;

}

return null;

}

protected boolean addFragmentToStack(ChildFragment fragment) {

IContainerFragment containerFragment = getContainerFragment();

if (containerFragment == null) {

return false;

}

containerFragment.addFragmentToStack(fragment);

return true;

}

@Override

public Animation onCreateAnimation(int transit, boolean enter, int nextAnim) {

TranslateAnimation animation = null;

if (transit == FragmentTransaction.TRANSIT_FRAGMENT_OPEN) {

if (enter) {

animation = new TranslateAnimation(Animation.RELATIVE_TO_SELF, 1, Animation.RELATIVE_TO_SELF, 0,

Animation.RELATIVE_TO_SELF, 0, Animation.RELATIVE_TO_SELF, 0);

} else {

animation = new TranslateAnimation(Animation.RELATIVE_TO_SELF, 0, Animation.RELATIVE_TO_SELF, -1,

Animation.RELATIVE_TO_SELF, 0, Animation.RELATIVE_TO_SELF, 0);

}

} else if (FragmentTransaction.TRANSIT_FRAGMENT_CLOSE == transit) {

if (enter) {

animation = new TranslateAnimation(Animation.RELATIVE_TO_SELF, -1, Animation.RELATIVE_TO_SELF, 0,

Animation.RELATIVE_TO_SELF, 0, Animation.RELATIVE_TO_SELF, 0);

} else {

animation = new TranslateAnimation(Animation.RELATIVE_TO_SELF, 0, Animation.RELATIVE_TO_SELF, 1,

Animation.RELATIVE_TO_SELF, 0, Animation.RELATIVE_TO_SELF, 0);

}

}

if (animation == null) {

animation = new TranslateAnimation(0, 0, 0, 0);

}

animation.setDuration(300);

return animation;

}

}

注意,该方案,进入fragment用如下方法

@Override

public boolean addFragmentToStack(ChildFragment fragment) {

if (!isResumed() || !isAdded()) {

return false;

}

String simpleName = fragment.getClass().getSimpleName();

FragmentTransaction ft = getChildFragmentManager().beginTransaction();

ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);

ft.replace(getContainerId(), fragment, simpleName);

ft.addToBackStack(null);

ft.commit();

getChildFragmentManager().executePendingTransactions();

return true;

}

退出fragment的方法为 getActivity().onBackPressed();

@Override

public void onClick(View view) {

switch (view.getId()) {

case R.id.title_bar_left_btn:

getActivity().onBackPressed();

break;

}

}

方法二

使用Fragmentmanager 的add方法,commit之前设置动画

/**

* 弹出Fragment堆栈

*/

private static void onPopBackStack(FragmentActivity context) {

if(context == null) {

android.util.Log.e("", "Context is null.");

return;

}

FragmentManager manager = context.getSupportFragmentManager();

if(manager == null) {

android.util.Log.e("", "FragmentManager is null.");

return;

}

Fragment lastElement = getActiveFragment(context);

if(lastElement != null && lastElement.isAdded()) {

lastElement.onHiddenChanged(false);

}

manager.beginTransaction()

.setCustomAnimations(

R.anim.slide_left_out,R.anim.slide_right_out)

.remove(lastElement)

.commitAllowingStateLoss();

manager.popBackStack();

disableFragmentView(false,context);

}

/**

* 添加Fragment到堆栈

* @param fragmentTag Tag标记

* @param fragment Fragment实例

*/

public static void addToBackStack(FragmentActivity context, String fragmentTag, Fragment fragment) {

disableFragmentView(true,context);

FragmentManager manager = context.getSupportFragmentManager();

manager.beginTransaction()

.setCustomAnimations(

R.anim.slide_right_in,

R.anim.slide_left_out)

.add(R.id.content_fragment, fragment,fragmentTag)

.addToBackStack(fragmentTag).commitAllowingStateLoss();

disableContentFragment(context, true);

}

slide_left_in

android:duration="300"

android:toXDelta="0.0"

android:fromXDelta="-100.0%p" />

slide_left_out

android:duration="300"

android:fromXDelta="0.0"

android:toXDelta="-100.0%p" />

slide_right_in

android:duration="300"

android:fromXDelta="100.0%p"

android:toXDelta="0.0" />

slide_right_out

android:duration="300"

android:toXDelta="100.0%p"

android:fromXDelta="0.0" />

http://www.lbrq.cn/news/826903.html

相关文章:

  • 做个企业网网站怎么做/百度识图扫一扫
  • 设计商城的网站建设/品牌推广包括哪些内容
  • 做视频网站 许可证/seo外贸公司推广
  • 建设微信商城网站制作/优化seo方案
  • ecshop网站价格/重庆森林经典台词梁朝伟
  • 邯郸疫情最新情况 最新消息/北京seo公司工作
  • 网站新闻发布后前台不显示/seo关键词查询
  • 事业单位网站备案/百度seo多久能优化关键词
  • 微信分销网站建设哪家好/重庆网站页面优化
  • 企业网站建设方式/企业营销型网站建设
  • 河北交通建设投资集团公司网站/千峰培训可靠吗?
  • 太原网页设计师/seo技术学院
  • 企业自助建站软件/免费的api接口网站
  • 公司网站建设完成通知/seo优化按天扣费
  • 宜兴做网站的联系方式/市场seo是什么
  • 内容电商的网站如何做/发稿服务
  • 哈尔滨网站制作公司/seo免费诊断联系方式
  • 网站建设服务领域/公司网站优化
  • 怎么用新浪云做网站/网站优化排名软件网
  • 专业网站制作公司/商丘搜索引擎优化
  • 网站运营计划书/企业培训机构有哪些
  • 利为汇网站建设/国内最新消息新闻
  • 摄影网站建立/网络营销公司怎么注册
  • 金融网站可以做公安备案/推广关键词
  • 会展网站建设情况/html网页制作代码大全
  • linux系统网站建设/百度搜索热度指数
  • o2o网站建设如何/快速搭建网站的工具
  • 简单的网站/免费网站建设哪家好
  • 交通设施东莞网站建设/网络营销方案案例
  • 部门做网站优点/淘宝网店的seo主要是什么
  • WireShark抓包分析TCP数据传输过程与内容详解
  • 红宝书单词学习笔记 list 51-75
  • 大语言模型调用方式与函数调用
  • TypeScript 泛型详解:从基础到实战应用
  • MyBatis之缓存机制详解
  • 我用Cursor,1周上线了一个虚拟资料流量主小程序技术选型