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

盐城市建设工程网站昆明专业网站设计公司

盐城市建设工程网站,昆明专业网站设计公司,互联网建设企业网站,足球世界排名一览表原文地址#xff1a;http://android.xsoftlab.net/training/multiscreen/adaptui.html 基于程序当前所显示的布局来说#xff0c;UI流程可能会有所不同。比如说#xff0c;如果程序当前处于多面板模式#xff0c;点击左面板中的项目会直接在右面版中显示具体的内容;如果当…原文地址http://android.xsoftlab.net/training/multiscreen/adaptui.html 基于程序当前所显示的布局来说UI流程可能会有所不同。比如说如果程序当前处于多面板模式点击左面板中的项目会直接在右面版中显示具体的内容;如果当前是单面板模式那么具体的内容则会在新的页面中显示。 检查当前的布局 因为每种布局的实现可能会有所不同所以首先要做的事情就是检查用户当前使用的是哪种布局。比如说你可能需要知道用户当前处于”单面板”模式还是”多面板”模式。你可以通过查询给定的View是否存在及是否可见的方式来得知当前的模式。 public class NewsReaderActivity extends FragmentActivity {boolean mIsDualPane;Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main_layout);View articleView findViewById(R.id.article);mIsDualPane articleView ! null articleView.getVisibility() View.VISIBLE;} } 注意这部分代码在查询”article”面板是否可用这要比查询指定布局的方式要灵活的多。 如何适配不同的组件的另一个示例是通过检查这些组件是否可用的方式来完成的。比如说在新闻阅读APP中有一个用于打开菜单的按钮但是这个按钮只在3.0以上的版本才有。所以如果要为这个按钮添加监听器你可以这么做 Button catButton (Button) findViewById(R.id.categorybutton); OnClickListener listener /* create your listener here */; if (catButton ! null) {catButton.setOnClickListener(listener); } 根据当前的布局做出响应 一些行为可能基于当前的布局产生不同的结果。比如说在新闻阅读APP中点击任意一条新闻标题在多面板模式中具体文章则会出现在右面板中但是在单面板模式中则会启动一个新的Activity来显示这些文章。 Override public void onHeadlineSelected(int index) {mArtIndex index;if (mIsDualPane) {/* display article on the right pane */mArticleFragment.displayArticle(mCurrentCat.getArticle(index));} else {/* start a separate activity */Intent intent new Intent(this, ArticleActivity.class);intent.putExtra(catIndex, mCatIndex);intent.putExtra(artIndex, index);startActivity(intent);} } 同样的如果APP当前处于多面板模式那么应该设置带有tab的ActionBar用于导航然而在单面板模式下就应当设置带有spinner的导航控件。所以代码中还应当检查当前是哪种情况 final String CATEGORIES[] { Top Stories, Politics, Economy, Technology }; public void onCreate(Bundle savedInstanceState) {....if (mIsDualPane) {/* use tabs for navigation */actionBar.setNavigationMode(android.app.ActionBar.NAVIGATION_MODE_TABS);int i;for (i 0; i CATEGORIES.length; i) {actionBar.addTab(actionBar.newTab().setText(CATEGORIES[i]).setTabListener(handler));}actionBar.setSelectedNavigationItem(selTab);}else {/* use list navigation (spinner) */actionBar.setNavigationMode(android.app.ActionBar.NAVIGATION_MODE_LIST);SpinnerAdapter adap new ArrayAdapter(this, R.layout.headline_item, CATEGORIES);actionBar.setListNavigationCallbacks(adap, handler);} } 重用Fragment 在设计多面板的应用时会反复出现的一个场景有一部分UI在一种屏幕配置中以面板的形式出现而在其它的配置中又是以独立的Activity出现。 在类似这种情况下你可以通过重用Fragment的方式来避免代码冗余。比如ArticleFragment就用于多面板的情况 LinearLayout xmlns:androidhttp://schemas.android.com/apk/res/androidandroid:layout_widthfill_parentandroid:layout_heightfill_parentandroid:orientationhorizontalfragment android:idid/headlinesandroid:layout_heightfill_parentandroid:namecom.example.android.newsreader.HeadlinesFragmentandroid:layout_width400dpandroid:layout_marginRight10dp/fragment android:idid/articleandroid:layout_heightfill_parentandroid:namecom.example.android.newsreader.ArticleFragmentandroid:layout_widthfill_parent / /LinearLayout 在小屏幕中又被Activity重用: ArticleFragment frag new ArticleFragment(); getSupportFragmentManager().beginTransaction().add(android.R.id.content, frag).commit(); 上面的代码与在XML布局中声明Fragment含有相同的效果但是这种情况下XML布局就没必要工作了因为article Fragment作为了这个Activity的组件。 一个非常重要的点要记住在设计Fragment时不要与指定的Activity产生强耦合。你可以通过定义接口的方式来使Fragment与宿主Activity产生交互宿主Activity需要实现这个接口 public class HeadlinesFragment extends ListFragment {...OnHeadlineSelectedListener mHeadlineSelectedListener null;/* Must be implemented by host activity */public interface OnHeadlineSelectedListener {public void onHeadlineSelected(int index);}...public void setOnHeadlineSelectedListener(OnHeadlineSelectedListener listener) {mHeadlineSelectedListener listener;} } 因此当用户选择了一条新闻时Fragment通过接口的方式来通知宿主Activity: public class HeadlinesFragment extends ListFragment {...Overridepublic void onItemClick(AdapterView? parent, View view, int position, long id) {if (null ! mHeadlineSelectedListener) {mHeadlineSelectedListener.onHeadlineSelected(position);}}... } 处理屏幕配置变更 如果使用了单独的Activity实现了UI的独立部分那么要记得响应某些配置的变化比如屏幕旋转以便保持UI的一致性。 比如说一款运行Android 3.0系统的7英寸平板新闻阅读APP在垂直模式下使用的是独立的Activity展示文章的内容但是在水平模式下使用的是多面板模式。 如果用户当前处于垂直模式下那么需要检查方向更改为了水平模式并需要通过结束结尾Activity并返回MainActivity的方式来让内容展示于双面板模式 public class ArticleActivity extends FragmentActivity {int mCatIndex, mArtIndex;Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);mCatIndex getIntent().getExtras().getInt(catIndex, 0);mArtIndex getIntent().getExtras().getInt(artIndex, 0);// If should be in two-pane mode, finish to return to main activityif (getResources().getBoolean(R.bool.has_two_panes)) {finish();return;}... }
http://www.yutouwan.com/news/30664/

相关文章:

  • 怎么看网站用的什么程序做的网站定制开发微信运营
  • 辽宁省建设网站wordpress表单提交的邮箱
  • 交互式网站开发技术有哪些深圳保障性住房规划
  • 活动网站建设专题网站建设意义何在
  • 温州网站建设服务器微信网站建设口碑好
  • 中网互联网站建设公司注册查询网
  • 建设部或国土资源管理局的网站wordpress 自动发邮件
  • 做玩游戏任务得q币的网站安徽定制型网站建设推广
  • 邯郸做企业网站改版uniapp做网站
  • 东台专业做网站怎么知道一个网站的权重
  • 沧源网站建设做水果蔬菜生意网站
  • 外贸优化网站制作头像在线设计生成器
  • 响应式网站多少价格个人制作网站的流程
  • python做网站商城开发手机app下载官方免费下载安装
  • 做网站的入什么科目设计类的软件有哪些
  • 昆明自助建站模板anker 网站谁做的
  • 如何做海外淘宝网站中商外贸app
  • 余姚外贸网站建设方案 网站建设
  • 外国网站做问卷调查挣钱正版全平台内容系统
  • 做机器人的网站wordpress 怎么上传
  • 服务器iis搭建网站网站项目合同
  • 做网站每年需要多少维护费青岛的网站设计公司
  • 微网站建设定制网站建设公司申请域名
  • 做运动鞋的网站视频dede网站制作教程
  • 建立网站来网上销售的英文海东市住房和城乡建设局网站
  • 外贸网站教程赤峰市网站建设培训
  • 网站建设空间大小网站建设整改情况汇报
  • 怎样通过网盘做电影网站百度推广怎么添加关键词
  • 消防有哪些网站合适做hao123网站源码制作2015最新仿
  • mcmore商城网站开发中信建设证券网站