fragment

使用kotlin开发android

拈花ヽ惹草 提交于 2020-03-10 23:45:25
说明 本篇简单介绍使用kotlin开放android的基本操作,有关kotlin的配置,文件创建,基础语法等。 创建kotlin开发环境 通过gradle创建基本的kotlin开发环境,需要使用kotlin支持插件,用于支持android开放,其基本配置build.gradle文件如下: buildscript { ext.kotlin_version = '1.1.3-2' repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:2.2.3' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } } repositories { repositories { jcenter() } } //使用android 插件 apply plugin: 'com.android.application' //使用kotlin支持android插件 apply

BottomNavigationView+Fragment/RadioGroup+Fragment等多种方式 实现底部导航条

*爱你&永不变心* 提交于 2020-03-10 15:19:22
Android 实现底部导航条有多种方式 1BottomNavigationView+Fragment 2RadioGroup+Fragment 3TabHost+Fragment BottomNavigationView+Fragment 实现 xml文件 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" > <FrameLayout android:id="@+id/content_main" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_above="@+id/bottomNavigation" android:layout

Fragment(碎片)的替换

守給你的承諾、 提交于 2020-03-09 11:28:40
第一步:新建工程(略); 第二步:新建3个Fragment,它们是LeftFragment,RightFragment,AnotherRightFragment,让它们自动生成的XML文件。 各自的文件内容如下: --------------------------------- LeftFragment.java 包文件让它自动导入即可 --------------------------------- public class LeftFragment extends Fragment { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { return inflater.inflate(R.layout.fragment_left, container, false); } } 代码解説: LayoutInflater 是一个抽象类,当我们平时需要加载layout文件来转换成View的场景都会用到它,它的作用类似于findViewById()。不同点是LayoutInflater是用来找res/layout/下的xml布局文件,并且实例化;对于一个没有被载入或者想要动态载入的界面

[Android] Android 使用 FragmentTabHost + Fragment 实现 微信 底部菜单

家住魔仙堡 提交于 2020-03-09 06:10:27
Android 使用 FragmentTabHost + Fragment 实现 微信 底部菜单 利用FragmentTabHost实现底部菜单,在该底部菜单中,包括了4个TabSpec,每个TabSpec中包含了一个View,而View中包含了一个ImageView和一个TextView。 一、先演示下效果: 二、TabHost基本介绍 TabWidget : 该组件就是TabHost标签页中上部 或者 下部的按钮, 可以点击按钮切换选项卡; TabSpec : 代表了选项卡界面, 添加一个TabSpec即可添加到TabHost中; -- 创建选项卡 : newTabSpec(String tag), 创建一个选项卡; -- 添加选项卡 : addTab(tabSpec); 三、使用步骤 1、定义布局 : 在XML文件中 使用 FragmentTabHost 组件 , 并在其中 定义一个FrameLayout选项卡 内容; <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width=

AndroidJetpack Fragment之Navigation和ViewPager2

99封情书 提交于 2020-03-07 14:02:21
新的Fragment导航方式:Navigation 1.创建若干个fragment 2.添加导航 1)新建Navigation:右键res文件夹,New->Android Resource File,Resource Type选择Navigation 2)添加Freagment:Navagation文件中,点击左上角添加,按顺序添加Fragment,拖动四边的节点可以设置导航顺序 3)添加HostFragment到container中 3.添加容器 activity中拖动添加containers->NavHostFragment并选择Navagation,或者添加代码: <fragment android:id="@+id/fragment" android:name="androidx.navigation.fragment.NavHostFragment" android:layout_width="0dp" android:layout_height="0dp" app:defaultNavHost="true" app:navGraph="@navigation/main_nav_controler" /> 4.设置跳转 ​ 指定位置添加代码: Navigation.findNavController(btn).navigate(R.id.action

EventBus-订阅总线

橙三吉。 提交于 2020-03-06 02:57:14
EventBus-订阅总线 介绍EventBus 案例:通过EventBus给Fragment设置EditText传来的值 介绍EventBus EventBus是一种用于Android的事件发布-订阅总线,它简化了应用程序内各个组件之间进行通信的复杂度,尤其是碎片之间进行通信的问题,可以避免由于使用广播通信而带来的诸多不便。 在EventBus中有三个重点 1、发送者 用来在任意线程中,发送数据,参数是Objcet类型. 2、接收者 用来接收数据.但是接收之前需要在当前的页面注册和注销, @Override public void onStart ( ) { super . onStart ( ) ; //订阅事件 EventBus . getDefault ( ) . register ( this ) ; } @verride public void onStop ( ) { super . onStop ( ) ; //退订事件 EventBus . getDefault ( ) . unregister ( this ) ; } 3、事件 需要发送的内容,这里也可以封装成一个对象 @Subscribe ( threadMode = ThreadMode . MAIN ) public void getMsg ( EvenBus e ) { tvShow . setText

Fragment高级

时间秒杀一切 提交于 2020-03-04 07:25:52
Fragment回退栈 代码展示 public class Main2Activity extends AppCompatActivity { private FragmentManager supportFragmentManager; private BlankFragment blankFragment; private Button butBack; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main2); initViews(); } private void initViews() { supportFragmentManager = getSupportFragmentManager();//获取碎片管理者 FragmentTransaction fragmentTransaction = supportFragmentManager.beginTransaction();//创建事务 blankFragment = new BlankFragment();//创建碎片 butBack = (Button) findViewById(R.id.but

Fragment简介及使用

那年仲夏 提交于 2020-03-04 00:04:05
概述 Fragment是 Android 3.0(API 11)引入的一种设计,用于大屏幕的设备。 Fragment依托于Activity,受宿主Activity生命周期的影响。但它也有自己的生命周期。 Fragment可重复使用,一个Activity可以有多个Fragment。一个Fragment可以被多个Acitivy使用。 Fragment在Acitivity运行时可以动态的加载或删除。在不同分辨率设备或者横竖屏时 调用对应的Fragment布局就能很好的实现设备的适配,提升用户体验。 注: AndroidX出来后,使用的Fragment库就在androidx中,下面的例子都是androidx的。 Fragment添加到Activity,一种通过<fragment>元素插入到布局中,另一种通过代码插入到布局中的<FrameLayout>。下面的例子就包含这两种。 savedInstanceState这个参数在很多时候是很有用的,在例子中的AnimeDetailFragment中简单的演示了它的使用。 注意不同的设备适配合适的布局,能够很好的提升用户体验。 生命周期 如图,比较详细,稍微了解点或者熟悉Activity的都能直接看懂,下面例子中也通过log大致显示了这一过程。 基本使用 先看下例子的效果, 这个例子只有一个Activity 和 两个Fragment组成: 上述效果

Fragment

血红的双手。 提交于 2020-03-03 18:49:23
待续//参考/reference/android/app/Fragment.html /guide/topics/fundamentals/fragments.html Fragment用来描述一些行为或一部分用户界面在一个Activity中,我们可以通过合并多个fragment在一个单独的activity中建立多个UI面板,也可以同时重用fragment在多个activity中。可以认为fragment作为activity的一节模块,fragment有自己的生命周期,接收自己的输入事件,可以从运行中的activity中添加/移除。 创建一个fragment必须创建Fragment的子类或者存在的子类 当系统在首次绘制用户界面调用fragment时,必须通过 onCreateView 在你的fragment画一个UI然后返回一个View(null表示没有fragment) 当fragment创建时被调用,要用到 onCreate() 初始化一些实用的空间,比如再fragment暂停或停止时需要恢复的 public class MyFragment extends Fragment{ @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle

Android的Fragment

不打扰是莪最后的温柔 提交于 2020-03-02 06:17:06
1、Fragment的产生与介绍 Android 运行在各种各样的设备中,有小屏幕的手机,超大屏的平板甚至电视。针对屏幕尺寸的差距,很多情况下,都是先针对手机开发一套App,然后拷贝一份,修改布 局以适应平板神马超级大屏的。难道无法做到一个App可以同时适应手机和平板么,当然了,必须有啊。Fragment的出现就是为了解决这样的问题。你可以把Fragment当成Activity的一个界面的一个组成部分,甚至Activity的界面可以完全有不同的Fragment组成,更帅气的是 Fragment拥有自己的生命周期和接收、处理用户的事件,这样就不必在Activity写一堆控件的事件处理的代码了。更为重要的是,你可以动态的添 加、替换和移除某个Fragment。 2、Fragment的生命周期 Fragment必须是依存与Activity而存在的,因此Activity的生命周期会直接影响到Fragment的生命周期。官网这张图很好的说明了两者生命周期的关系: onAttach(Activity) 当Fragment与Activity发生关联时调用。 onCreateView(LayoutInflater, ViewGroup,Bundle) 创建该Fragment的视图 onActivityCreated(Bundle) 当Activity的onCreate方法返回时调用