当用户点击导航栏中的项目时,我需要显示片段布局。
活动类: -
elif
在片段类中: -
Fragment fragment = new PreferencesFragment();
FragmentManager fragmentManager = getFragmentManager();
fragmentManager.beginTransaction()
.replace(R.id.mainContent, fragment)
.commit();
mDrawerList.setItemChecked(position, true);
setTitle(mNavItems.get(position).mTitle);
// Close the drawer
mDrawerLayout.closeDrawer(mDrawerPane);
我的问题是,它显示了一个例外
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.scorefragment, container, false);
return view;
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
//fetching results from db
}
包含导航抽屉列表的活动布局文件
02-22 10:55:24.113: E/AndroidRuntime(31725): java.lang.IllegalStateException: ScrollView can host only one direct child
02-22 10:55:24.113: E/AndroidRuntime(31725): at android.widget.ScrollView.addView(ScrollView.java:248)
02-22 10:55:24.113: E/AndroidRuntime(31725): at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:905)
02-22 10:55:24.113: E/AndroidRuntime(31725): at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1067)
02-22 10:55:24.113: E/AndroidRuntime(31725): at android.app.BackStackRecord.run(BackStackRecord.java:834)
02-22 10:55:24.113: E/AndroidRuntime(31725): at android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1454)
02-22 10:55:24.113: E/AndroidRuntime(31725): at android.app.FragmentManagerImpl$1.run(FragmentManager.java:447)
02-22 10:55:24.113: E/AndroidRuntime(31725): at android.os.Handler.handleCallback(Handler.java:739)
02-22 10:55:24.113: E/AndroidRuntime(31725): at android.os.Handler.dispatchMessage(Handler.java:95)
02-22 10:55:24.113: E/AndroidRuntime(31725): at android.os.Looper.loop(Looper.java:135)
02-22 10:55:24.113: E/AndroidRuntime(31725): at android.app.ActivityThread.main(ActivityThread.java:5343)
02-22 10:55:24.113: E/AndroidRuntime(31725): at java.lang.reflect.Method.invoke(Native Method)
02-22 10:55:24.113: E/AndroidRuntime(31725): at java.lang.reflect.Method.invoke(Method.java:372)
02-22 10:55:24.113: E/AndroidRuntime(31725): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:905)
02-22 10:55:24.113: E/AndroidRuntime(31725): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:700)
Scorefragment布局文件。
<android.support.v4.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/drawerLayout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ScrollView
android:id="@+id/mainContent"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#F5F5DC">
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent" >
<LinearLayout android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="15dp">
<TextView
android:id="@+id/textView7"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:layout_weight="1"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:weightSum="3">
<com.example.android.animationsdemo.TouchHighlightImageButton
android:id="@+id/thumb_button_1"
android:layout_width="100dp"
android:layout_height="200dp"
android:layout_marginRight="1dp"
android:contentDescription="@string/description_image_1"
android:scaleType="centerCrop"
android:src="@drawable/thirteenone"
android:layout_weight="1" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"/>
<com.example.android.animationsdemo.TouchHighlightImageButton
android:id="@+id/thumb_button_2"
android:layout_width="100dp"
android:layout_height="200dp"
android:contentDescription="@string/description_image_2"
android:scaleType="centerCrop"
android:src="@drawable/thirteentwo"
android:layout_weight="1" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:weightSum="3" >
<CheckBox
android:id="@+id/checkBox1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="A"
android:layout_weight="1"/>
<TextView
android:id="@+id/textView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
/>
<CheckBox
android:id="@+id/checkBox2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="B"
android:layout_weight="1"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:weightSum="3"
android:layout_marginTop="10dp">
<com.example.android.animationsdemo.TouchHighlightImageButton
android:id="@+id/thumb_button_3"
android:layout_width="100dp"
android:layout_height="200dp"
android:contentDescription="@string/description_image_3"
android:scaleType="centerCrop"
android:src="@drawable/thirteenthree"
android:layout_weight="1" />
<TextView
android:id="@+id/textView6"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1" />
<com.example.android.animationsdemo.TouchHighlightImageButton
android:id="@+id/thumb_button_4"
android:layout_width="100dp"
android:layout_height="200dp"
android:contentDescription="@string/description_image_4"
android:scaleType="centerCrop"
android:src="@drawable/thirteenfour"
android:layout_weight="1" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:weightSum="3">
<CheckBox
android:id="@+id/checkBox3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="C"
android:layout_weight="1" />
<TextView
android:id="@+id/textView4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1" />
<CheckBox
android:id="@+id/checkBox4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="D"
android:layout_weight="1" />
</LinearLayout>
</LinearLayout>
<ImageView
android:id="@+id/expanded_image"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:visibility="invisible"
android:contentDescription="@string/description_zoom_touch_close" />
</FrameLayout>
</ScrollView>
<!-- The navigation drawer -->
<RelativeLayout
android:layout_width="280dp"
android:layout_height="match_parent"
android:id="@+id/drawerPane"
android:layout_gravity="start">
<!-- Profile Box -->
<RelativeLayout
android:id="@+id/profileBox"
android:layout_width="match_parent"
android:layout_height="100dp"
android:background="@color/material_blue_grey_800"
android:padding="8dp" >
<ImageView
android:id="@+id/avatar"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_marginTop="15dp" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="42dp"
android:layout_centerVertical="true"
android:layout_marginLeft="15dp"
android:layout_toRightOf="@+id/avatar"
android:orientation="vertical" >
<TextView
android:id="@+id/userName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#fff"
android:textSize="16sp"
android:textStyle="bold" />
</LinearLayout>
</RelativeLayout>
<!-- List of Actions (pages) -->
<ListView
android:id="@+id/navList"
android:layout_width="280dp"
android:layout_height="match_parent"
android:layout_below="@+id/profileBox"
android:choiceMode="singleChoice"
android:background="#ffffffff" />
</RelativeLayout>
</android.support.v4.widget.DrawerLayout>
我也无法显示布局,即分数碎片。
请帮帮我。
答案 0 :(得分:1)
Scrollview只包含一个孩子......
<android.support.v4.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/drawerLayout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ScrollView
android:id="@+id/mainContent"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#F5F5DC">
<RelativeLayout
android:id="@+id/rel_main"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<LinearLayout android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="15dp">
<TextView
android:id="@+id/textView7"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:layout_weight="1"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:weightSum="3">
<com.example.android.animationsdemo.TouchHighlightImageButton
android:id="@+id/thumb_button_1"
android:layout_width="100dp"
android:layout_height="200dp"
android:layout_marginRight="1dp"
android:contentDescription="@string/description_image_1"
android:scaleType="centerCrop"
android:src="@drawable/thirteenone"
android:layout_weight="1" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"/>
<com.example.android.animationsdemo.TouchHighlightImageButton
android:id="@+id/thumb_button_2"
android:layout_width="100dp"
android:layout_height="200dp"
android:contentDescription="@string/description_image_2"
android:scaleType="centerCrop"
android:src="@drawable/thirteentwo"
android:layout_weight="1" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:weightSum="3" >
<CheckBox
android:id="@+id/checkBox1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="A"
android:layout_weight="1"/>
<TextView
android:id="@+id/textView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
/>
<CheckBox
android:id="@+id/checkBox2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="B"
android:layout_weight="1"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:weightSum="3"
android:layout_marginTop="10dp">
<com.example.android.animationsdemo.TouchHighlightImageButton
android:id="@+id/thumb_button_3"
android:layout_width="100dp"
android:layout_height="200dp"
android:contentDescription="@string/description_image_3"
android:scaleType="centerCrop"
android:src="@drawable/thirteenthree"
android:layout_weight="1" />
<TextView
android:id="@+id/textView6"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1" />
<com.example.android.animationsdemo.TouchHighlightImageButton
android:id="@+id/thumb_button_4"
android:layout_width="100dp"
android:layout_height="200dp"
android:contentDescription="@string/description_image_4"
android:scaleType="centerCrop"
android:src="@drawable/thirteenfour"
android:layout_weight="1" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:weightSum="3">
<CheckBox
android:id="@+id/checkBox3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="C"
android:layout_weight="1" />
<TextView
android:id="@+id/textView4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1" />
<CheckBox
android:id="@+id/checkBox4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="D"
android:layout_weight="1" />
</LinearLayout>
</LinearLayout>
<ImageView
android:id="@+id/expanded_image"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:visibility="invisible"
android:contentDescription="@string/description_zoom_touch_close" />
</RelativeLayout>
</ScrollView>
<!-- The navigation drawer -->
<RelativeLayout
android:layout_width="280dp"
android:layout_height="match_parent"
android:id="@+id/drawerPane"
android:layout_gravity="start">
<!-- Profile Box -->
<RelativeLayout
android:id="@+id/profileBox"
android:layout_width="match_parent"
android:layout_height="100dp"
android:background="@color/material_blue_grey_800"
android:padding="8dp" >
<ImageView
android:id="@+id/avatar"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_marginTop="15dp" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="42dp"
android:layout_centerVertical="true"
android:layout_marginLeft="15dp"
android:layout_toRightOf="@+id/avatar"
android:orientation="vertical" >
<TextView
android:id="@+id/userName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#fff"
android:textSize="16sp"
android:textStyle="bold" />
</LinearLayout>
</RelativeLayout>
<!-- List of Actions (pages) -->
<ListView
android:id="@+id/navList"
android:layout_width="280dp"
android:layout_height="match_parent"
android:layout_below="@+id/profileBox"
android:choiceMode="singleChoice"
android:background="#ffffffff" />
</RelativeLayout>
</android.support.v4.widget.DrawerLayout>
答案 1 :(得分:0)
在你的布局文件中,你应该在ScrollView中只有一个布局。
答案 2 :(得分:0)
是的,正如其他人所说的那样,您似乎正在向ScrollView
添加更多的视图,这是不可能的。好的做法是让ScrollView
有LinearLayout
作为 only 子项,然后将所需的小部件和视图添加到LinearLayout
。
添加布局后进行修改。
我认为问题在于您尝试将片段加载(或替换)到ScrollView
。我尝试查看replace
方法的源代码,似乎它将您的片段布局添加到父级(在本例中为ScrollView
)并隐藏其他子级(它确实如此)不删除它们,因此IllegalStateException
例外)。它实际上不会删除其他子节点,因为您可能希望稍后操作它们。
在您的情况下,您必须使用ScrollView
的内容替换您的片段(由于我之前说过的原因,应该是FrameLayout
)而不是ScrollView
本身。希望这能解决问题。
答案 3 :(得分:0)
您收到此异常是因为您在scrollView中占用了多个子项。
尝试将所有布局合并到ScrollView内的单个线性布局中。这可能会解决您的问题!
让我知道这是否有效.. :)