Я создал очень простую библиотеку https://github.com/ravinderpayal/FooterJS
Это очень просто в использовании. После включения библиотеки просто позвоните в эту строку кода.
footer.init (document.getElementById ("ID_OF_ELEMENT_CONTAINING_FOOTER"));
Нижние колонтитулы могут быть динамически изменены путем вызова вышеуказанной функции с помощью другого параметра / id.
footer.init (document.getElementById ("ID_OF_ANOTHER_ELEMENT_CONTAINING_FOOTER"));
Примечание: - Вы не должны изменять или добавлять CSS. Библиотека динамична, что подразумевает, что даже если размер экрана будет изменен после загрузки страницы, он сбросит положение нижнего колонтитула. Я создал эту библиотеку, потому что CSS решает проблему некоторое время, но когда размер отображения значительно меняется, с рабочего стола на планшет или наоборот, они либо перекрывают содержимое, либо больше не остаются липкими.
Другое решение - это CSS Media Queries, но вам приходится вручную писать разные стили CSS для разных размеров экранов, в то время как эта библиотека выполняет свою работу автоматически и поддерживается всеми базовыми браузерами, поддерживающими JavaScript.
Редактирование решения CSS:
@media только экран и (min-height: 768px) {/ * или высота / длина содержимого тела, включая нижний колонтитул * / / * Для мобильных телефонов: * / #footer {width: 100%; Положение: фиксированный; внизу: 0; }}
Теперь, если высота отображения больше, чем длина вашего содержимого, мы сделаем нижний колонтитул фиксированным снизу, а если нет, он автоматически появится в самом конце дисплея по мере необходимости чтобы просмотреть это.
И это кажется лучшим решением, чем JavaScript / library.
не задает вопрос точно так же, как слишком просто:
ExampleFragment fragment = (ExampleFragment) getFragmentManager().findFragmentById(R.id.example_fragment);
fragment.<specific_function_name>();
Обновление: для тех, кто использует Kotlin
var fragment = supportFragmentManager.findFragmentById(R.id.frameLayoutCW) as WebViewFragment
fragment.callAboutUsActivity()
((FragmentName) getFragmentManager().findFragmentById(R.id.fragment_id)).methodName();
2. Если вы используете фрейм библиотеки поддержки, выполните следующие действия:
((FragmentName) getSupportFragmentManager().findFragmentById(R.id.fragment_id)).methodName();
Если вы используете «import android.app.Fragment;», то используйте либо:
1)
ExampleFragment fragment = (ExampleFragment) getFragmentManager().findFragmentById(R.id.example_fragment);
fragment.specific_function_name();
Где R.id.example_fragment, скорее всего, FrameLayout id внутри вашего xml-макета. OR
2)
ExampleFragment fragment = (ExampleFragment) getFragmentManager().findFragmentByTag(“FragTagName”);
fragment.specific_function_name();
Где FragTagName - это имя u, указанное при u:
TabHost mTabHost.newTabSpec(“FragTagName”)
Если вы используете «импорт» android.support.v4.app.Fragment; "Затем используйте либо:
1)
ExampleFragment fragment = (ExampleFragment) getSupportFragmentManager().findFragmentById(R.id.example_fragment);
fragment.specific_function_name();
OR
2)
ExampleFragment fragment = (ExampleFragment) getSupportFragmentManager().findFragmentByTag(“FragTagName”);
fragment.specific_function_name();
Если вы используете библиотеку поддержки, вам нужно сделать что-то вроде этого:
FragmentManager manager = getSupportFragmentManager();
Fragment fragment = manager.findFragmentById(R.id.my_fragment);
fragment.myMethod();
Я считаю, что лучше всего проверить, добавлен ли фрагмент перед вызовом метода в фрагменте. Сделайте что-то подобное, чтобы избежать нулевого исключения.
ExampleFragment fragment = (ExampleFragment) getFragmentManager().findFragmentById(R.id.example_fragment);
if(fragment.isAdded()){
fragment.<specific_function_name>();
}