2015-01-21 4 views
2

У меня есть Fragment, а в onActivityCreated я проверить whther или нет rootView из fragment показан или нет с помощью метода isShown(). Несмотря на то, отображается раскладка, эта строка возвращает falserootView отображается, но метод isShown() возвращает ложь

Log.d(TAG, "is rootView isShown: " + rootView.isShown()); 

Код:

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    Log.w(TAG, "@onCreateView()"); 
    rootView = inflater.inflate(R.layout.mqtt_fragment, container, false); 
    initModeChooseViews(rootView); 
    return rootView; 
} 

@Override 
public void onActivityCreated(Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    Log.w(TAG, "@onActivityCreated()"); 
    super.onActivityCreated(savedInstanceState); 
    Log.d(TAG, "is rootView Shown: " + rootView.isShown()); 
} 
+0

использовать 'setMenuVisibility', переопределить это и проверить значение boolean –

+0

на этом этапе вашего корневого просмотра еще не видно, попробуйте проверить метод' onResume' – SorryForMyEnglish

ответ

0

называют в OnResume() потому isShown()Возвращает видимость этой точки зрения и все его предки. Возвращает Истина, если эта точка зрения и все его предков VISIBLE

От чтения, если у вас есть setVisibility о целях в связи с этим не видимый, собирается вернуться ложным, так что проверить, если вы переключены видимость соответствующего вида или называть его, когда все видно, что находится onresume

+0

ok, есть ли способ конвертировать или отображать макет для просмотра? для примера, учитывая макет «r.layout.myLayout», я хочу преобразовать его в представление, чтобы я мог использовать методы ishown(), isClickanle() ,, ... и т. д. – rmaik

+0

вы используете фрагменты вправо ? его уже делается, просто используйте 'getView()' он возвращает корневое представление фрагмента, переданного в 'onCreateView', там вы можете вызывать' View' определенные функции, такие как 'isShown()' @rmaik, например, 'if (getView () .ishown()) ' – Elltz

0

вы проверяете видимость слишком рано. В представлении фрагмента метода onActivityCreated не видно пока. Фрагментный вид становится видимым, так как onstart фрагмента. Поэтому проверьте видимость в методе onStart (или в любом другом месте после onStart).

+0

Я попробовал ваш ответ, но он все равно возвращает false – rmaik

Смежные вопросы