简体   繁体   English

如何在ExpandableListView中添加WebView?

[英]How To add WebView in ExpandableListView?

how can i add webview in expandable list view? 如何在可扩展列表视图中添加Webview? i need to add html file (which can be done using webview) under expandableListView 我需要在expandableListView下添加html文件(可以使用webview完成)

Any tutorial ? 有教程吗? How can i do it? 我该怎么做?

is there any other method of doing the same? 还有其他方法可以做到吗?

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="91dp"
android:descendantFocusability="blocksDescendants"
 android:background="#ffffff">
<ImageView
android:layout_width="30dp"
android:layout_height="91dp"
android:id="@+id/sth_cell_img_correct"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:src="@drawable/icon_checked" />    <WebView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clickable="false"
android:id="@+id/sth_web_view" />
</RelativeLayout>

Just assume that the child element of every group is a list of size equal to 1 . 只需假设每个组的子元素都是a list of size equal to 1 So, other parts of the adapter should be as usual with the exception of getChildView() and getChildrenCount() . 因此,适配器的其他部分应该与往常一样,但getChildView()getChildrenCount() In addition you may use the same object type as group and child. 另外,您可以使用与组和子对象相同的对象类型。

    @Override
    public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View rowView, ViewGroup parent) {
        //String url = mList.get(groupPosition).getChildList().get(childPosition);
        String url = mList.get(groupPosition).getUrl();

        if (rowView == null) {
            LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            rowView = inflater.inflate(R.layout.fermata_adapter_body, null);
            mWebView = (WebView) rowView.findViewById(R.id....); 
            ...
        }
        mWebView.loadUrl(url);
        return rowView;
    }

    @Override
    public int getGroupCount() {
        return mList.size();
    }

    @Override
    public int getChildrenCount(int groupPosition) {
        return 1;//every group has 1 child
    }
    @Override
    public Object getChild(int groupPosition, int childPosition) {
        return mList.get(groupPosition);//or mList.get(groupPosition).getUrl();
    }
    @Override
    public Object getGroup(int groupPosition) {
        return mList.get(groupPosition);
    }

For better usability, you may need to use networking libraries like Volley to load the web content rather than simply saying mWebView.loadUrl(url) 为了获得更好的可用性,您可能需要使用Volley等网络库来加载Web内容,而不是简单地说mWebView.loadUrl(url)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM