0

Как я могу добавить веб-просмотр в расширяемом виде списка? мне нужно добавить HTML-файл (который может быть сделано с помощью WebView) под expandableListViewКак добавить WebView в ExpandableListView?

Любой учебник? Как мне это сделать?

есть ли другой способ сделать то же самое?

<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)

Смежные вопросы