首先,我很抱歉我的英文不好,如何显示我的可扩展列表视图和网格视图,当我尝试这样做时,我收到错误
渲染期间引发异常:
Scroll View can host only one direct child
Exception details are logged in Window > Show View > Error Log
代码:
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.samp.sampleproh.MainActivity"
android:orientation="vertical" >
<ExpandableListView
android:id="@+id/lvExp"
android:layout_width="match_parent"
android:layout_height="205dp"
android:layout_weight="0.41"
android:cacheColorHint="#00000000" >
</ExpandableListView>
<GridView
android:id="@+id/gridview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:columnWidth="90dp"
android:numColumns="auto_fit"
android:verticalSpacing="10dp"
android:horizontalSpacing="10dp"
android:stretchMode="columnWidth"
android:gravity="center"/>
</ScrollView>
答案 0 :(得分:2)
您需要将可扩展列表视图和gridview添加到一个常见的相对布局,这将解决您的问题。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<ExpandableListView
android:id="@+id/lvExp"
android:layout_width="match_parent"
android:layout_height="205dp"
android:layout_weight="0.41"
android:cacheColorHint="#00000000"></ExpandableListView>
<GridView
android:id="@+id/gridview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_below="@+id/lvExp"
android:columnWidth="90dp"
android:gravity="center"
android:horizontalSpacing="10dp"
android:numColumns="auto_fit"
android:stretchMode="columnWidth"
android:verticalSpacing="10dp" />
</RelativeLayout>
</ScrollView>
</RelativeLayout>
答案 1 :(得分:1)
您收到错误的原因是<Scrollview/>
标记只能容纳一个孩子。意味着您不能像{1}中那样直接在<Scrollview/>
中定义多个孩子。
您已在<Gridview/>
内定义了<ExpandableListView/>
和<Scrollview/>
。它不是<Scrollview/>
的正常行为。
参考此链接..
http://developer.android.com/reference/android/widget/ScrollView.html
它说......
ScrollView是一个FrameLayout,意味着您应该在其中放置一个包含要滚动的全部内容的子项;这个子本身可能是一个具有复杂对象层次结构的布局管理器。
解决方案:
您必须在任何其他父视图中组合两个视图,例如
<LinearLayout/>
或<RelativeLayout/>
。
示例代码:
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<ExpandableListView/>
<GridView/>
<LinearLayout/>
</ScrollView>