Kotlin Fragment使用方法詳解
1.Fragment的介紹
Android在3.0版本引入了Fragment功能,它非常類似于Activity,可以像Activity一樣包含布局。
它出現(xiàn)的初衷是為了適應(yīng)大屏幕的平板電腦,使用Fragment我們可以把屏幕劃分成幾塊,合理利用屏幕空間。
Fragment通常是嵌套在Activity中使用。
2.靜態(tài)加載
步驟:
(1)定義Fragment控件的布局文件。
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".LeftFragment"> <TextView android:layout_width="match_parent" android:layout_height="match_parent" android:text="這是左邊" /> </FrameLayout>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".RightFragment"> <TextView android:layout_width="match_parent" android:layout_height="match_parent" android:text="這是右邊" /> </FrameLayout>
(2)自定義Fragment類,繼承自Fragment類或者子類,同時實現(xiàn)onCreateView()方法,在方法中,通過inflater.inflate加載布局文件,接著返回其View。
class LeftFragment : Fragment() { override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? ): View? { return inflater.inflate(R.layout.fragment_left, container, false) } }
class RightFragment : Fragment() { override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? ): View? { // Inflate the layout for this fragment return inflater.inflate(R.layout.fragment_right, container, false) } }
(3)在需要加載Fragment控件的Activity對應(yīng)的布局文件中添加Fragment標簽,并設(shè)置name屬性為自定義fragment。
<LinearLayout 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:orientation="horizontal" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <fragment android:id="@+id/leftFrag" android:name="com.hui.fragment.LeftFragment" android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1"/> <fragment android:id="@+id/rightFrag" android:name="com.hui.fragment.RightFragment" android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1"/> </LinearLayout>
(4)最后在Activity的onCreate()方法中調(diào)用setContentView()加載布局。
class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) } }
3.動態(tài)加載
步驟:
(1)通過getSupportFragmentManager()方法獲得FragmentManager對象。
val fragmentManager=supportFragmentManager
(2)開啟事務(wù),通過beginTransaction()方法獲得FragmentTransaction對象。
val transaction=fragmentManager.beginTransaction()
(3)調(diào)用add()方法或者repalce()方法加載Fragment。
transaction.replace(R.id.rightLayout,fragment) //replace()方法需要傳入容器的id和待添加的Fragment實例
(4)最后調(diào)用commit()方法提交事務(wù)。
transaction.commit()
到此這篇關(guān)于Kotlin Fragment使用方法詳解的文章就介紹到這了,更多相關(guān)Kotlin Fragment內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Android5.0+ CollapsingToolbarLayout使用詳解
這篇文章主要為大家詳細介紹了Android5.0+ CollapsingToolbarLayout使用,感興趣的小伙伴們可以參考一下2016-09-09Android獲取應(yīng)用程序名稱(ApplicationName)示例
本文以實例方式為大家介紹下獲取應(yīng)用程序名稱(ApplicationName)的具體實現(xiàn),感興趣的各位可以參考下哈2013-06-06Android連接MySQL數(shù)據(jù)庫詳細教程
在Android應(yīng)用程序中連接 MySQL 數(shù)據(jù)庫可以幫助開發(fā)人員實現(xiàn)更豐富的數(shù)據(jù)管理功能,本教程將介紹如何在Android應(yīng)用程序中使用低版本的MySQL Connector/J驅(qū)動程序來連接MySQL數(shù)據(jù)庫,需要的朋友可以參考下2023-05-05Android自定義scrollview實現(xiàn)回彈效果
這篇文章主要為大家詳細介紹了Android自定義scrollview實現(xiàn)回彈效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-04-04