public final boolean isAdded()
如果该Fragment对象被添加到了它的Activity中,那么它返回true,否则返回false。
public final boolean isDetached()
如果该Fragment已经明确的从UI中分离,那么它返回true。也就是说,在该Fragment对象上使用FragmentTransaction.detach(Fragment)方法。
该方法在API Level 13中被引入。
public final boolean isHidden()
如果该Fragment对象已经被隐藏,那么它返回true。默认情况下,Fragment是被显示的。能够用onHiddenChanged(boolean)回调方法获取该Fragment对象状态的改变,要注意的是隐藏状态与其他状态是正交的---也就是说,要把该Fragment对象显示给用户,Fragment对象必须是被启动并不被隐藏。
Public final boolean isInLayout()
如果布局通过<fragment>标签被包含在Activity层次树中,那么它就返回true。当Fragment是通过<fragment>标签来创建的时候,这个方法始终会返回true。从之前的状态恢复旧的Fragment对象,并且该对象没有显示在当前状态的布局中的情况除外。
Public final boolean isRemoving()
如果当前的Fragment对象正在从它的Activity中被删除,那么就返回true。这删除过程不是该Fragment对象的Activity的结束过程,而是把Fragment对象从它所在的Activity中删除的过程。
public final boolean isResumed()
如果Fragment对象是在恢复状态中,该方法会返回true。在onResume()和onPause()回调期间,这个方法都返回true。
Public final boolean isVisible()
如果该Fragment对象对用户可见,那么就返回true。这就意味着它:1.已经被添加到Activity中;2.它的View对象已经被绑定到窗口中;3.没有被隐藏。
Public void onActivityCreated(Bundle savedInstanceState)
当Fragment对象的Activity被创建,并且Fragment对象的View层次树被实例化的时候,系统会调用这个方法。能够利用这个方法来做一些最后的初始化处理,如获取或恢复状态,还可用于那些使用setRetainInstance(boolean)方法来保留它们的实例的Fragment对象,因为这个回调方法会告诉Fragment对象,它是在什么时候跟这个新的Activity实例关联的。该回调方法在onCreateView(LayoutInflater, ViewGroup, Bundle)之后和onStart()之前被调用。
savedInstanceState 如果该Fragment对象正在被重建,那么该参数指定之前被保存的状态。
public void onActivityResult(int requestCode, int resultCode, Intent data)
接收来自前面调用startActivityForResult(Intent, int)方法的结果。在Activity API的相关介绍中有关于onActivityResult(int, int, Intent)方法的介绍。
requestCode 这个整数是由startActivityForResult()提供的初始请求Code,允许用来标识该结果的来源。
resultCode 这个整数是由子Activity通过它的setResult()方法设置并返回的结果Code。
Data 一个Intent类型的对象,它把结果数据返回给调用者(能包各种数据绑定给Intent对象的extras属性字段)。
public void onAttach(Activity activity)
当该Fragment对象被第一次绑定到它的Activity时,系统会调用这个方法。这个方法被调用之后,系统会调用该Fragment对象的onCcreate(Bundle)方法。
public void onConfigurationChanged(Configuration newConfig)
当设备配置改变且组件正在运行时,系统会调用这个方法。要注意的是,跟Activity不一样,在配置改变时,其他的组件不会被重启:它们始终通过重新获取资源来处理这种改变。
在该功能被调用后,被更新的资源对象会返回与新的配置相匹配的资源值。
newConfing 指定新的设备配置。
public boolean onContextItemSelected(MenuItem item)
在上下文菜单中的一个菜单项被选择时,系统会调用这个回调方法。对于所放生的普通的处理过程,该方法的默认实现只是简单的返回false(调用该项目的Runnable对象或把一个消息发送给相应的Handler)。可以使用这个方法针对菜单项做一些其他的处理。
使用getMenuInfo()方法来获取由添加给菜单项的View对象所设置的附加信息。
其子类应用通过调用基类的该方法实现来执行默认的菜单处理。
item 该参数指定了被选择的上下文菜单项。
如果允许正常的上下文菜单处理,就返回false,否则返回true。
public void onCreate(Bundle savedInstanceState)
Fragment对象被初始创建时,系统会调用该方法。调用时机是在onAttach(Activity)之后,onCreateView(LayoutInflater, ViewGroup, Bundle)之前。
要注意的是,该方法在其Fragment的Activity依然在被创建的过程中,也能够被调用。因此,不能在这个时点依赖正在被初始化的Activity的上下文View层次树。
savedInstanceState 如果该Fragment正在被重建,那么这个参数会指定Fragment之前的状态。
public Animator onCreateAnimator(int transit, boolean enter, int nextAnim)
在Fragment对象加载一个动画时,系统会调用这个方法。
转自:http://www.cnblogs.com/andriod-html5/archive/2012/06/02/2539402.html
Android类参考---Fragment(四)public final boolean isAdded()如果该Fragment对象被添加到了它的Activity中,那么它返回true,否则返回false。public final boolean isDetached()如果该Fragment已经明确的从UI中分离,那么它返回true。也就是说,在该Fragmen
public final boolean is
Add
ed
()
如果该
Fragment
对象被添加到了它的Activity中,那么它返回true,否则返回false。
public final boolean isDetach
ed
()
如果该
Fragment
已经明确的从UI中分离,那么它返回true。也就是说,在该
Fragment
对象上使用
Fragment
Transaction.detach(F...
Fragment
我们大家经常用的一个“碎片”控件,在
fragment
的切换中我们会用到hide(),show()
方法
,当然了这只是
fragment
之间切换的一种
方法
,今天我们我们不讲
fragment
是怎么切换的,而是谈谈
fragment
中的onHiddenChang
ed
()
方法
。
最近我在项目中遇到一个对于新手(也包括我啊)来说比较蛋疼的BUG,先看一下问题所在,然后我在讲解。
转载自: https://blog.csdn.net/qq_28261207/article/details/64129808
问题:当Activity里有多个
fragment
时,其中
fragment
A根据需求,需要在onResume时需要做请求数据等操作,但是如果直接在
fragment
A里的onResume里写东西,当从其他页面返回到
fragment
B和
fragment
C时,
fragment
A里的onResume也会走,这样很浪费流量浪费资源。
问题原因:
fragment
的生命周期是跟着它所在的act.
ragment是我们经常使用到的一个控件,但是,相信大家会出现这样的一个问题,每次切换
fragment
的时候之前我们一直都是这样写的代码:/**
* 根据传入的参数来改变当前的
fragment
* @param
fragment
private void show
Fragment
(
Fragment
fragment
) {
安卓开发中
Fragment
最常用的地方应该就是首页tab的切换了吧,下面上代码
//获取
Fragment
Transaction
mTransaction = m
Fragment
Manager.beginTransaction();
//先把所有的
Fragment
隐藏
hide
Fragment
s(mTransaction);
if (mHome
Fragment
== n...
项目中,为了实现不同
fragment
之间值得传递,首先想到的是利用bundle或者shareprefercnce之类的共享数据机制,当不符合项目需求,有点过于复杂和冗余,就利用网上一位前辈的建议,在主Activity中,创建一个共享的数据变量,在其他
fragment
中只要获取到这个值就可以得到数据,实现共享,代码如下:
主activity定义一个共享数据变量:
private String
2.如果是在viewpager里,就需要判断getUser
Visible
Hint,不在viewpager时,getUser
Visible
Hint默认为true // 如果是其它情况,就通过isHidden判断,因为show/hide时会改变isHidden的状态
3.当使用show/hide
方法
时,会
调用
onHiddenChang
ed
在使用context 的时候偶尔会报
Fragment
not attach
ed
to a context 异常。
原因是
fragment
还没有被完全初始化,就
调用
context 对象。
LocalBroadcastManager.getInstance(requireContext())
这时候如果报错,就要提前判断一下是否是否
fragment
已经添加到activity
if(is
Add
ed
()){
LocalBroadcastManager.getI...
在
Fragment
中
调用
Activity的
方法
,可以通过以下步骤实现:
1. 定义一个接口,在Activity中实现该接口,并在
Fragment
中持有该接口的引用。
2. 在
Fragment
中
调用
该接口的
方法
,即可实现
调用
Activity的
方法
。
具体实现步骤如下:
1. 定义一个接口,例如:
public interface On
Fragment
InteractionListener {
void on
Fragment
Interaction(String data);
2. 在Activity中实现该接口:
public class MainActivity extends AppCompatActivity implements On
Fragment
InteractionListener {
@Override
protect
ed
void onCreate(Bundle sav
ed
InstanceState) {
super.onCreate(sav
ed
InstanceState);
setContentView(R.layout.activity_main);
@Override
public void on
Fragment
Interaction(String data) {
// 在这里处理
Fragment
传递过来的数据
3. 在
Fragment
中持有该接口的引用,并在需要
调用
Activity的
方法
时
调用
该接口的
方法
:
public class My
Fragment
extends
Fragment
{
private On
Fragment
InteractionListener mListener;
@Override
public void onAttach(Context context) {
super.onAttach(context);
if (context instanceof On
Fragment
InteractionListener) {
mListener = (On
Fragment
InteractionListener) context;
} else {
throw new RuntimeException(context.toString()
+ " must implement On
Fragment
InteractionListener");
@Override
public void onDetach() {
super.onDetach();
mListener = null;
private void sendDataToActivity(String data) {
if (mListener != null) {
mListener.on
Fragment
Interaction(data);
这样,在
Fragment
中
调用
sendDataToActivity
方法
时,就可以实现
调用
Activity的on
Fragment
Interaction
方法
了。
Android应用程序打包时,出现错误:"XXX" is not translated in "af" (Afrikaans), "am" (Amharic), "ar" (Arabic).....
26345
关于dialog引起的java.lang.IllegalArgumentException:View=com.android.internal.policy.impl.PhoneWindow$Deco
Android应用程序打包时,出现错误:"XXX" is not translated in "af" (Afrikaans), "am" (Amharic), "ar" (Arabic).....
起舞的红叶
Android应用程序打包时,出现错误:"XXX" is not translated in "af" (Afrikaans), "am" (Amharic), "ar" (Arabic).....
午夜深蓝_午夜深蓝:
Android应用程序打包时,出现错误:"XXX" is not translated in "af" (Afrikaans), "am" (Amharic), "ar" (Arabic).....
hjt497821976:
Android中ListView下拉刷新的实现
luoq2q: