如何从 MainActivity 访问外部视图
How to acess a external view from the MainActivity
这个问题让我脑洞大开。我有两个片段,每个片段都包含一个 WebView。然后将这两个片段放置在 ViewPagerAdapter 中,这是我的 ViewPager 的适配器。然后使用 TabLayout 设置此 ViewPager。在代码中:
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
WebViewFragment webViewFragment1 = WebViewFragment.newInstance(1);
WebViewFragment webViewFragment2 = WebViewFragment.newInstance(2);
WebViewFragment[] fragments = new WebViewFragment[]
{
webViewFragment1,
webViewFragment2
};
String[] fragmentTitles = new String[]
{
"WebView1",
"WebView2"
};
ViewPager viewPager = (ViewPager)findViewById(R.id.viewPager);
ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager(), fragments, fragmentTitles);
viewPager.setAdapter(adapter);
TabLayout tabLayout = (TabLayout)findViewById(R.id.tabLayout);
tabLayout.setupWithViewPager(viewPager);
}
这种结构让我可以像在 WhatsApp(手势控制)中那样查看片段。
尽管如此,我想在MainActivty 中的WebViewFragments 中控制WebViews 的内容。但我不知道如何从外部访问 WebView。两个 webview 的 ID 为:
webView1 //and
webView2
当我尝试在
的帮助下访问时
findViewById(R.id.webView1)
方法,我得到 null 作为响应。
现在,如何从 MainActivity 访问这些视图?
WebViewFragment
private WebView webView;
public onViewCreated(....) {
webView = view.findViewBy(R.id.webview);
....
}
public WebView getWebView() {
return webView;
}
Activity
WebViewFragment webViewFragment1 = WebViewFragment.newInstance(1);
WebView webView = webViewFragment1.getWebView();
webView.... //WebView Stuff
请确保 2 个 Fragments 是膨胀的而不是 Null。
这个问题让我脑洞大开。我有两个片段,每个片段都包含一个 WebView。然后将这两个片段放置在 ViewPagerAdapter 中,这是我的 ViewPager 的适配器。然后使用 TabLayout 设置此 ViewPager。在代码中:
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
WebViewFragment webViewFragment1 = WebViewFragment.newInstance(1);
WebViewFragment webViewFragment2 = WebViewFragment.newInstance(2);
WebViewFragment[] fragments = new WebViewFragment[]
{
webViewFragment1,
webViewFragment2
};
String[] fragmentTitles = new String[]
{
"WebView1",
"WebView2"
};
ViewPager viewPager = (ViewPager)findViewById(R.id.viewPager);
ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager(), fragments, fragmentTitles);
viewPager.setAdapter(adapter);
TabLayout tabLayout = (TabLayout)findViewById(R.id.tabLayout);
tabLayout.setupWithViewPager(viewPager);
}
这种结构让我可以像在 WhatsApp(手势控制)中那样查看片段。
尽管如此,我想在MainActivty 中的WebViewFragments 中控制WebViews 的内容。但我不知道如何从外部访问 WebView。两个 webview 的 ID 为:
webView1 //and
webView2
当我尝试在
的帮助下访问时findViewById(R.id.webView1)
方法,我得到 null 作为响应。
现在,如何从 MainActivity 访问这些视图?
WebViewFragment
private WebView webView;
public onViewCreated(....) {
webView = view.findViewBy(R.id.webview);
....
}
public WebView getWebView() {
return webView;
}
Activity
WebViewFragment webViewFragment1 = WebViewFragment.newInstance(1);
WebView webView = webViewFragment1.getWebView();
webView.... //WebView Stuff
请确保 2 个 Fragments 是膨胀的而不是 Null。