本篇文章为大家展示了怎么在Android中利用片段模仿一个微信界面,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
<强>什么是片段强>
自从Android 3.0中引入碎片的概念,根据词海的翻译可以译为:碎片,片段。其目的是为了解决不同屏幕分辩率的动态和灵活UI设计。大屏幕如平板小屏幕如手机,平板电脑的设计使得其有更多的空间来放更多的UI组件,而多出来的空间存放UI使其会产生更多的交互,从而诞生了碎片。
碎片的设计不需要你来亲自管理视图层次的复杂变化,通过将活动的布局分散到frament中,可以在运行时修改活动的外观,并且由活动管理的回栈中保存些变化。当一个片段指定了自身的布局时,它能和其他片段配置成不同的组合,在活动中为不同的屏幕尺寸修改布局配置(小屏幕可能每次显示一个片段,而大屏幕则可以显示两个或更多)。
片段必须被写成可重用的模块。因为片段有自己的布局,自己进行事件响应,拥有自己的生命周期和行为,所以你可以在多个活动中包含同一个片段的不同实例。这对于让你的界面在不同的屏幕尺寸下都能给用户完美的体验尤其重要。
<强>片段优点强>
片段可以使你能够将活动分离成多个可重用的组件,每个都有它自己的生命周期和UI。
片段可以轻松得创建动态灵活的UI设计,可以适应于不同的屏幕尺寸。从手机到平板电脑。
片段是一个独立的模块,紧紧地绑与活动定在一起。可以运行中动态地移除,加入,交换等。
片段提供一个新的方式让你在不同的安卓设备上统一你的UI。
片段解决活动间的切换不流畅,轻量切换。
片段替代TabActivity做导航,性能更好。
片段在4.2。版本中新增嵌套片段使用方法,能够生成更好的界面效果。
片段做局部内容更新更方便,原来为了到达这一点要把多个布局放到一个活动里,面现在可以用多片段来代替,只有在需要的时候才加载片段,提高性能。
可以从startActivityForResult中接收到返回结果,但是观点不能。
图片中给出了实例的效果,在点击下方的按钮时,上半部分会自动切换成对应的内容。这里使用的技术是片段。
想必大家对片段已经有所了解,就算不清楚,百度也有详细的介绍。在这里就着重介绍实现的过程。
首先,拿其中的一个部分“首页”来讲:
上面一部分是片段,下面则是相对固定的按钮区。也就是说,当点击按钮时,切换的只是上半部分内容,所以,每一个片段都有一个自己的xml布局文件。就想图中所示的,“首页”这个片段的xml文件就是由一个textview构成。
完成碎片的xml文件后,需要定义一个对应的Java类来找到它,比如:首页对应的类是homeFragment。java。注意,这个类需要继承片段,并且每一个这样继承片段的类都需要重写其onCreateView的方法。具体代码是:
import android.app.Fragment; import android.os.Bundle; import android.support.annotation.Nullable; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import com.example.cerian.marcon.R;/* * ,* Created by  Cerian 提醒2017/7/9。 ,*/public class  homeFragment extends Fragment  { @Override才能 public 才能;View  onCreateView (LayoutInflater 增压泵,ViewGroup 容器, ,,,,,,,,,,,,,,Bundle savedInstanceState), { ,,,View 视图=inflater.inflate (R.layout.fragment_home, null); ,,,//找到按钮前要加的观点。 ,,,return ; ,,} }
完成到这步时,每一个片段的内容就已经完成了。接下来要做的是,将每一个片段与一个页面绑定并在其上显示。这里我用了一个menufunction。xml
代码是:
& lt; ? xml version=?.0“,编码=皍tf-8" ?比; & lt;使用 android:才能id=癅 + id/rl_layout" ,,xmlns: android=癶ttp://schemas.android.com/apk/res/android" android:才能取向=皏ertical" android:才能layout_width=癿atch_parent" android:才能layout_height=癿atch_parent"比; ,& lt; LinearLayout ,,,android: id=癅 + id/ll_layout" ,,,android: layout_width=癿atch_parent" ,,,android: layout_height=癿atch_parent" ,,,android:取向=皏ertical"比; & lt;才能/LinearLayout> ,& lt; LinearLayout ,,,android: showDividers=翱紎结束| middle" ,,,android:背景=? ffffff" ,,,android: layout_width=癿atch_parent" ,,,android: layout_height=?0 dp" ,,,android:取向=癶orizontal" ,,,android: layout_alignParentBottom=皌rue" ,,,android: layout_alignParentLeft=皌rue" ,,,android: layout_alignParentStart=皌rue"比; ,,,& lt; ImageView ,,,,,android: id=癅 + id/ig_home" ,,,,,android:点击=皌rue" ,,,,,android: layout_weight=?”; ,,,,,android: layout_width=? dp" ,,,,,android: layout_height=皐rap_content" ,,,,,android: src=https://www.yisu.com/zixun/" @mipmap/homepage1 "/>怎么在Android中利用片段模仿一个微信界面