android中的xml布局文件中定义class=""是什么意思,Android Fragment在xml布局文件中使用...

fragment也是可以在我们的布局文件中直接使用的

xmlns:tools="http://schemas.android.com/tools"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical"

tools:context=".home.activity.MainActivity">

android:id="@+id/fragmentTest"

android:name="com.home.fragment.Test"

android:layout_width="match_parent"

android:layout_height="match_parent"/>

那么在activity中拿到该fragment呢?

FragmentManager fragmentManager = getSupportFragmentManager();

TestFragment testFragment = (TestFragment) fragmentManager.findFragmentById(R.id.fragmentTest);

注意:无论我们是否需要在activity中使用该fragment,我们都必须给该fragment声明id属性或者声明一个tag属性,否则会报异常,如下:

使用tag属性

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"

android:orientation="vertical"

tools:context=".home.activity.MainActivity">

android:tag="fragmentTest"

android:name="com.bawie.bawaymall160a.home.fragment.CatagoryFragment"

android:layout_width="match_parent"

android:layout_height="match_parent"/>

//代码中使用

FragmentManager fragmentManager = getSupportFragmentManager();

TestFragment testFragment = (TestFragment) fragmentManager.findFragmentByTag("testFragment);

注意这里使用findFragmentByTag()方法

异常信息如下:

Caused by: android.view.InflateException: Binary XML file line #45: Error inflating class fragment

Caused by: java.lang.IllegalArgumentException: Binary XML file line #45: Must specify unique android:id, android:tag, or have a parent with an id for com.bawie.bawaymall160a.home.fragment.CatagoryFragment

at android.support.v4.app.FragmentManagerImpl.onCreateView(FragmentManager.java:3717)

at android.support.v4.app.FragmentController.onCreateView(FragmentController.java:120)

at android.support.v4.app.FragmentActivity.dispatchFragmentsOnCreateView(FragmentActivity.java:405)

at android.support.v4.app.FragmentActivity.onCreateView(FragmentActivity.java:387)

at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:777)

at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:727)

at android.view.LayoutInflater.rInflate(LayoutInflater.java:858)

at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:821)

at android.view.LayoutInflater.inflate(LayoutInflater.java:518)

at android.view.LayoutInflater.inflate(LayoutInflater.java:426)

at android.view.LayoutInflater.inflate(LayoutInflater.java:377)

at android.support.v7.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.java:469)

at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140)

at com.bawie.bawaymall160a.home.activity.MainActivity.onCreate(MainActivity.java:23)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值