0

我不知道这是我的应用程序结构的问题还是我的代码的问题。

我有一个扩展 SherlockFragmentActivity 的 tabActivity。
这有一个 ViewPager 和一个 TabsAdapter。
有两个选项卡和一个选项菜单项(“搜索”)。
这两个选项卡用于输入搜索参数。一份简单,一份详细。如果单击搜索,则执行搜索并显示结果。

选项卡的内容已经是 SherlockFragment 类型的对象。到目前为止,这工作正常。

目前,搜索结果是一个单独的活动。我也希望将它们放在 viewpager 中。所以我将它转换为一个 SherlockActivity。但是,如果我在 onCreate() 方法中制作(“this”是 tabActivity):

FragmentManager fm = this.getSupportFragmentManager();
Fragment ft = Fragment.instantiate(this, searchFragment.class.getName(), null);
if(fm.findFragmentById(R.id.searchresults_content) == null)
{
    fm.beginTransaction().add(R.id.searchresults_content, ft).commit();
}

接着:

this.mViewPager.addView(ft.getView());

ft.getView();返回空值。searchFragment 中的 OnCreateView 将执行此操作:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) 
{
    WebView mWebView = (WebView)findViewById(R.id.search_results);
    View mView = inflater.inflate(R.layout.search_results, container, false);
    mWebView.setWebViewClient(new SearchResultsWebViewClient());
//... (load data for webview etc...)
    return mView;
}

search_results.xml:

    <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="match_parent"> 
    <WebView xmlns:android="http://schemas.android.com/apk/res/android"
        android:id ="@+id/search_results"
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >
    </WebView>
</LinearLayout>
4

0 回答 0