0

我原以为这很容易,但事实证明它比我想象的要困难。我只想确定两个片段何时在我的一个片段中的屏幕上可见。我不确定是否onCreate是最好的地方,但我尝试了onResume, onActivityCreated,onResume和. 我认为这些片段对代码实际上是不可见的,直到稍后,但不确定。onCreateViewonAttach

这是我正在尝试使用的代码:

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout
    android:orientation="horizontal"
    android:layout_height="fill_parent"
    android:layout_width="fill_parent"
>
    <fragment android:name="com.app.Fragment1"
            android:id="@+id/fragment1"
            android:layout_weight="1"
            android:layout_width="0dp"
            android:layout_height="fill_parent"
     />

    <fragment android:name="com.app.Fragment2"  
            android:id="@+id/fragment2"
            android:layout_width="0dp"
            android:layout_weight="2"
            android:layout_height="fill_parent"
     />
</LinearLayout>

public class Fragment2 extends SherlockListFragment
{
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);

        setHasOptionsMenu(true);

        final Fragment1 f1 = (Fragment1)getFragmentManager().findFragmentById(R.id.fragment1);
        final Fragment2 f2 = (Fragment2)getFragmentManager().findFragmentById(R.id.fragment2);

        Boolean isVisible = (f1 != null && f1.isVisible() && f2 != null && f2.isVisible());
    }       
}
4

1 回答 1

0

onStart()是当片段对用户可见时,所以我建议将您的isVisible代码放入onResume以确保安全。

于 2013-01-22T17:30:28.547 回答