我正在添加一个带有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()???
仍然是“假的”答案 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}}。请注意,此时片段甚至没有膨胀,当然也不可见。您需要检测片段是否在活动生命周期的后期可见。