当前位置: 代码迷 >> Android >> Android:滑动抽屉的内容与整个屏幕重叠
  详细解决方案

Android:滑动抽屉的内容与整个屏幕重叠

热度:24   发布时间:2023-08-04 12:07:39.0

我有一个使用滑动抽屉的应用程序。 我必须进行一些更改,滑动抽屉的内容是一个简单的相对布局,但是我必须对其进行更改以包含一个片段。

这是更改之前的滑块布局:

<SlidingDrawer
             android:id="@+id/drawer"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_alignParentTop="true"
            android:orientation="horizontal"
            android:handle="@+id/handle"
            android:rotation="180"
            android:content="@+id/content">

            <ImageView
                android:id="@id/handle"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@drawable/handle"
                android:rotation="180"
                 />

             <RelativeLayout
                 android:id="@id/content"
                 android:background="@drawable/border"
                 android:layout_width="140dip"
                 android:layout_height="fill_parent"
                 android:orientation="vertical"
                 android:rotation="180"
                 android:focusable="true"
                 android:focusableInTouchMode="true">

                 <EditText
                     android:drawableLeft="@android:drawable/ic_menu_search"
                     android:layout_width="fill_parent"
                     android:layout_height="50dp"
                     android:id="@+id/editInp"
                     android:layout_marginLeft="20dip"
                     android:imeOptions="actionDone"
                     android:layout_marginRight="20dip"
                     android:layout_marginTop="15dip"
                     android:hint=""
                     android:textColor="@color/themeapp"
                     android:background="@drawable/layout_corner_white"
                     android:singleLine="true"
                     android:inputType="textNoSuggestions"/>

                 <ImageView
                     android:id="@+id/clear_button"
                     android:layout_width="35dp"
                     android:layout_height="35dp"
                     android:layout_marginTop="23dip"
                     android:layout_alignRight="@id/editInp"
                     android:src="@android:drawable/ic_menu_close_clear_cancel"/>

                 <RelativeLayout
                     android:id="@+id/progress_conteiner"
                     android:layout_width="fill_parent"
                     android:layout_height="fill_parent"
                     android:layout_above="@+id/footer1"
                     android:layout_below="@+id/header1"
                     android:visibility="gone">

                     <ProgressBar

                         android:layout_width="wrap_content"
                         android:layout_height="wrap_content"
                         android:layout_centerInParent="true"
                         style="?android:attr/progressBarStyle"/>
                 </RelativeLayout>

                 <ExpandableListView
                     android:id="@+id/list"
                     android:layout_below="@+id/editInp"
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content"
                     android:paddingTop="20dip"
                     android:layout_alignParentBottom="true"
                     android:layout_alignParentRight="true"
                    android:layout_alignParentEnd="true"
                     android:divider="@color/themeapp"
                     android:dividerHeight="1dp"
                     android:indicatorRight="300dp" />
             </RelativeLayout>
</SlidingDrawer>

更改后,它看起来像这样:

<SlidingDrawer
            android:id="@+id/drawer"
            android:layout_width="140dp"
            android:layout_height="fill_parent"
            android:layout_alignParentTop="true"
            android:orientation="horizontal"
            android:handle="@id/handle"
            android:rotation="180"
            android:content="@id/content_frame">

            <ImageView
                android:id="@+id/handle"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@drawable/handle"
                android:rotation="180"
                 />

            <FrameLayout
                android:id="@+id/content_frame"
                android:layout_width="140dp"
                android:layout_height="fill_parent" >
            </FrameLayout>

</SlidingDrawer>

片段的Java代码:

getActivity().getSupportFragmentManager().beginTransaction().add(R.id.content_frame, new FragmentFleetListMap(this)).commit();

以前的滑块内容已移动(未更改)到单独的布局文件中,以在新创建的片段中使用。

以前,滑块工作正常,但现在我看到片段内容与活动内容重叠(请参见下面的screeenshot),也不限于滑块空间,而是占据了整个屏幕

正如您在屏幕截图中所见,滑块是打开的,它占据了屏幕上正确的部分(请参阅处理程序的位置[右侧中间的橙色小矩形),所以我认为问题实际上是片段内容未放在滑块内

有人可以帮我吗?

看起来像这行:

getActivity().getSupportFragmentManager().beginTransaction().add(R.id.content_frame, new FragmentFleetListMap(this)).commit();

正在“添加”我的片段,该片段包含在mapfragment而不是frameLayout上的列表。 更改为:

getChildFragmentManager().beginTransaction().add(R.id.content_frame, new FragmentFleetListMap(this)).commit();

解决了问题

  相关解决方案