0

我如何在可扩展列表视图中添加webview? 我需要expandableListView如何在ExpandableListView中添加WebView?

任何教程下添加HTML文件(可以使用的WebView做)?我该怎么做?

有没有其他方法可以做同样的事情?

<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> 
+0

希望能有一个'单WebView'可扩展列表视图的孩子? – makata

+0

@makata是的没错! –

+1

如果您熟悉基本的BaseExpandableListAdapter和WebView,这应该不难。你有没有了解基本的ExpandableList,这样我可以给你一个片段? – makata

回答

1

假设每个组的子元素都是a list of size equal to 1。所以,除了getChildView()getChildrenCount()之外,适配器的其他部分应如往常一样。另外,您可以使用与组和孩子相同的对象类型。

@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); 
    } 

为了更好的可用性,您可能需要使用网络库像Volley加载网页内容,而不是简单地说mWebView.loadUrl(url)

相关问题