如何在通过XML布局添加时检查片段是否为isVisible()

时间:2014-09-15 18:48:53

标签: java android android-fragments

我正在添加一个带有XML布局的片段。它显示所有工作都很好。为什么isVisible()总是返回false ???添加XML时如何检查片段可见性? - 谢谢你。

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.history_activity_layout);
        Log.d("myLog",".....key1= setContentView");

         mF= new HistoryOFragMast();


         //  Test:  add with code : isVisible still = false
//          FragmentTransaction fragmentTransaction = manager.beginTransaction();
//          fragmentTransaction.add(R.id.fragment1p, mF, "myMaster");
//          fragmentTransaction.commit();



            fMasterP= (HistoryOFragMast) manager.findFragmentById(R.id.fragment1p);
            Log.d("myLog",".....key1= fMasterP NULL= "+fMasterP);
            Log.d("myLog",".....key1= fMasterP vis= "+fMasterP.isVisible());....}

我的xml是history_activity_layout.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/fragment1rl"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <fragment
        android:id="@+id/fragment1p"
        android:name="com.pakage.O.HistoryOFragMast"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true" />

</RelativeLayout>

编辑: 将代码移动到onResume()以确保我已到达Avctivity \ Fragment Lifcyle的末尾。对于isVisible()???

仍然是“假的”

2 个答案:

答案 0 :(得分:0)

您可以使用以下代码来检查片段是否对用户可见(您必须在HistoryofragMast片段类中使用它)

@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
    super.setUserVisibleHint(isVisibleToUser);
    if (isVisibleToUser) {
        //Code to do when visible here
    }
}

答案 1 :(得分:0)

我认为您的onCreate()方法位于包含Activity的{​​{1}}。请注意,此时片段甚至没有膨胀,当然也不可见。您需要检测片段是否在活动生命周期的后期可见。