需要在片段-android中显示布局

时间:2016-02-22 05:49:15

标签: android android-fragments

当用户点击导航栏中的项目时,我需要显示片段布局。

活动类: -

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>

我也无法显示布局,即分数碎片。

请帮帮我。

4 个答案:

答案 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添加更多的视图,这是不可能的。好的做法是让ScrollViewLinearLayout作为 only 子项,然后将所需的小部件和视图添加到LinearLayout

添加布局后进行修改。 我认为问题在于您尝试将片段加载(或替换)到ScrollView。我尝试查看replace方法的源代码,似乎它将您的片段布局添加到父级(在本例中为ScrollView)并隐藏其他子级(它确实如此)不删除它们,因此IllegalStateException例外)。它实际上不会删除其他子节点,因为您可能希望稍后操作它们。

在您的情况下,您必须使用ScrollView的内容替换您的片段(由于我之前说过的原因,应该是FrameLayout)而不是ScrollView本身。希望这能解决问题。

答案 3 :(得分:0)

您收到此异常是因为您在scrollView中占用了多个子项。

尝试将所有布局合并到ScrollView内的单个线性布局中。这可能会解决您的问题!

让我知道这是否有效.. :)