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

简述一下网站的设计流程四川住房和城乡建设部网站首页

简述一下网站的设计流程,四川住房和城乡建设部网站首页,互联网网站seo优化,无锡网站制作 高端网站定制修改代码 现在的ItemClick使得用户单击其中一个项目时就会跳转#xff0c;现在要修改其使得在一个小屏幕设备上才会这样做#xff0c;在一个大屏幕设备上运行用户选择一个训练项目时在右边的片段显示响应的信息。 希望片段处理后退的方式#xff1a;假设用户在手机上运行这…修改代码 现在的ItemClick使得用户单击其中一个项目时就会跳转现在要修改其使得在一个小屏幕设备上才会这样做在一个大屏幕设备上运行用户选择一个训练项目时在右边的片段显示响应的信息。 希望片段处理后退的方式假设用户在手机上运行这个应用单击一个训练项目时会在另一个活动中显示这个训练项目的详细信息。如果用户单击后退按钮他们会回到训练项目列表。在平板上后退时则希望回到之前选择的第一个项目回到前一个片段的状态。 后退堆栈 在应用中从一个活动访问到另一个活动时Android会把各个活动增加到一个后退堆栈来跟踪你访问过的所有活动后退堆栈是一个日志记录了你在设备上访问过的所有地方每个地方记录为一个单独的事务。 后退堆栈不止适用于活动还适用于任何类型的事务包括对片段的改变。 如何将片段的变化作为单独的事务记录到后退堆栈呢 每次用户选择一个不同的训练项目时我们都要把整个WorkoutDetailFragment替换为一个新实例WorkoutDetailFragment的各个新实例将显示用户选择的训练项目的详细信息。这样我们就能把各个片段替换作为单独的事务增加到后退堆栈。每次用户单击后退按钮时最近的事务就会从栈顶退出用户会看到他们选择的前一个训练项目的信息。 使用帧布局替换片段 将activity_main.xml(large)中的代码替换如下 ?xml version1.0 encodingutf-8? LinearLayoutxmlns:androidhttp://schemas.android.com/apk/res/androidandroid:orientationhorizontalandroid:layout_widthmatch_parentandroid:layout_heightmatch_parentfragmentandroid:namecom.hfad.workout.WorkoutListFragmentandroid:idid/list_fragandroid:layout_width0dpandroid:layout_weight2android:layout_heightmatch_parent/FrameLayoutandroid:idid/fragment_containerandroid:layout_width0dpandroid:layout_weight3android:layout_heightmatch_parent / /LinearLayout然后我们可以通过布局差别区分设备使用的布局通过检查布局是否包含上一页我们增加的帧布局来区分所使用的布局版本代码如下 View fragmentContainer findViewById(R.id.fragment_container);if (fragmentContainer ! null){}else {使用片段事务 只要活动在允许可以通过编程向活动的布局增加一个片段。为此只需要一个用来放置片段的视图组如帧布局。可以使用片段事务在运行时增加、替换或删除片段。片段事务是与片段有关的一组连续的片段。 创建一个片段事务时需要做三件事 1、开始事务 这会告诉Android你要启动一系列改变这些改变要记录在一个事务中。 2、指定改变 这些是事务中要包含的所有动作。这可能包括增加、替换或删除一个片段、更新它的数据以及把它增加到后退堆栈。 3、提交事务 这会完成事务并应用所做的改变。 1、开始事务 开始一个事务时首先得到活动的片段管理器的一个引用。从上一章可以知道片段管理器用于管理活动使用的所有片段。如果你使用了支持库片段要使用以下方法得到片段管理器的引用 getSupportFragmentManager()一旦有了片段管理器的引用可以调用它的beginTransaction()方法开始事务 FragmentTransaction transaction getSupportFragmentManager().beginTransaction();2、指定改变 开始事务后需要指出这个事务包括哪些片段。 如果想为活动的布局增加一个片段可以调用片段事务的add()方法。这个方法有两个参数要加入片段的那个视图组的资源ID,以及你想要增加的片段。代码如下 //创建片段 WorkoutDetailFragment fragment new WorkoutDetailFragment(); //将片段添加到ViewGroup transaction.add(R.id.fragment_container, fragment); //替换片段 transaction.replace(R.id.fragment_container, fragment); //删除片段 transaction.remove(fragment); //设置事务过渡动画(非必需) transaction.setTransition(transaction); //将事务增加到后退堆栈中其参数是一个String类可以作为事务的标签大多数情况下都不需要指定事务的标签传入null transaction.addToBackStack(null);3、提交事务 //提交事务 transaction.commit();更新MainActivity中的itemClicked方法 package com.hfad.workout;import androidx.appcompat.app.AppCompatActivity; import androidx.fragment.app.FragmentTransaction;import android.content.Intent; import android.os.Bundle; import android.view.View;public class MainActivity extends AppCompatActivity implements WorkoutListFragment.Listener {Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);}Overridepublic void itemClicked(long id) {View fragmentContainer findViewById(R.id.fragment_container);if (fragmentContainer ! null){WorkoutDetailFragment details new WorkoutDetailFragment();FragmentTransaction ft getSupportFragmentManager().beginTransaction();details.setWorkoutId(id);//每次用户单击一个训练项目时要把这个片段替换为它的一个新实例//这是WorkoutDetailFragment的一个新实例它会显示用户选择的那个训练项目的详细信息。ft.replace(R.id.fragment_container, details);//设置片段淡入淡出ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);//将这个事务增加到后退堆栈ft.addToBackStack(null);ft.commit();}else {Intent intent new Intent(this, DetailActivity.class);intent.putExtra(DetailActivity.EXTRA_WORKOUT_ID, (int)id);startActivity(intent);}} }试着运行一下可以达到预期效果了 旋转屏幕时会出问题 选装设备时Android会撤销然后重新创建活动如果该活动使用了一个片段这个片段会随着这个活动撤销和重建。所以仍然需要更新onSaveInstance保存信息在onreate中取出。 更新WorkoutDetailFragment.java package com.hfad.workout;import android.os.Bundle;import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.fragment.app.Fragment;import android.os.PersistableBundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.TextView;public class WorkoutDetailFragment extends Fragment {//用来表示用户选择的训练项目的IDprivate long workoutId;Override//Android需要这个片段的布局时会调用这个方法public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {// 这会告诉Android这个片段使用哪个布局return inflater.inflate(R.layout.fragment_workout_detail, container, false);}Overridepublic void onCreate(Nullable Bundle savedInstanceState) {super.onCreate(savedInstanceState);if (savedInstanceState ! null){workoutId savedInstanceState.getLong(workoutId);}}public void onStart() {super.onStart();//得到片段的根视图然后使用这个根视图得到两个文本视图的引用View view getView();if (view ! null) {TextView title (TextView) view.findViewById(R.id.textTitle);Workout workout Workout.workouts[(int)workoutId];title.setText(workout.getName());TextView description (TextView) view.findViewById(R.id.textDescription);description.setText(workout.getDescription());}}public void setWorkoutId(long id) {this.workoutId id;}Overridepublic void onSaveInstanceState(NonNull Bundle outState) {super.onSaveInstanceState(outState);outState.putLong(workoutId, workoutId);} }自此、大功告成
http://www.tj-hxxt.cn/news/224131.html

相关文章:

  • 学习做网站建设的学校cdq百度指数
  • 扁平化网站设计欣赏品牌策划是什么
  • 泉州做外贸网站使用网站
  • 济南网站建设公司官网如何自己创建网址
  • 成都金融网站建设公司排名电子政务门户网站建设汇报
  • 扬州 网站 建设域名是什么样式的
  • 做微信活动是做网站还是做小程序好wordpress网站维护插件
  • 河南最新新闻头条如何提高网站seo排名
  • 网站建设的部署更新网站的方法
  • php笔记网站太原云起时网站建设
  • 打开网站要密码wordpress如何添加js
  • 阿里巴巴官方网站网站建设scyiyou
  • 网站建设人员分工沈阳专业网站建设公司
  • html购物网站个人网站需不需要备案
  • 滨州网站建设滨州河南省住房和城乡建设厅查询网站首页
  • 网站没有后台怎么更新文章网站的目录怎样做的
  • 怎么做网站代码国家建筑规范标准
  • 化妆品可做的团购网站有哪些做的asp网站手机号码
  • c 网站开发如何每天10点执行任务wordpress发布模块支持5.x
  • 建站之星织梦网站模板如何安装教程
  • 自己怎么做电影网站外链服务
  • 怎么做进入网站js特效佛山有哪些公司
  • 中工信融网站建设杭州网站建设设计公司哪家好
  • 平面设计接单网站有哪些有没有网站做字体变形
  • 做视频网站服务器多少钱wordpress获取当前页面的别名
  • 龙华网站建设设计wordpress 用户接口
  • 网站批量添加内容交换免费连接
  • 一个公司做2个产品网站怎么做短视频投放方案
  • 怎么做网站360图片链接设计与绘制一个网站首页
  • 网站开发公司一站式服务建筑代理公司是干什么的