【问题标题】:How to acess a external view from the MainActivity如何从 MainActivity 访问外部视图
【发布时间】:2017-09-06 18:10:37
【问题描述】:

这个问题让我脑洞大开。我有两个片段,每个片段都包含一个 WebView。然后将这两个 Fragment 放在 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 访问这些视图?

【问题讨论】:

    标签: java android android-fragments android-viewpager android-tablayout


    【解决方案1】:

    WebViewFragment

     private WebView webView;
      public onViewCreated(....) {
           webView = view.findViewBy(R.id.webview);
           ....
      }
    
      public WebView getWebView() {
           return webView;
      }
    

    活动

        WebViewFragment webViewFragment1 = WebViewFragment.newInstance(1);
       WebView webView = webViewFragment1.getWebView();
       webView.... //WebView Stuff
    

    请确保 2 个 Fragment 是膨胀的,而不是 Null。

    【讨论】:

    • 问题是onCreate循环太快了,所以fragment来不及膨胀WebViews。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-09-29
    • 1970-01-01
    • 1970-01-01
    • 2019-03-29
    • 2011-03-24
    • 2020-11-10
    • 1970-01-01
    相关资源
    最近更新 更多