Android - 覆盖碎片

时间:2015-09-27 18:53:32

标签: android android-fragments overlay

我在我的应用程序中有覆盖,我进行了搜索,我发现了一些显然很简单的解决方案,但对我来说并不适用。可能我有点困惑,因为我不明白它为什么不起作用。

因此,在我的activity_main.xml文件中,我有一个FrameLayout元素' container_body'。在我的MainActivity中,我设置了这个xml的内容。在这个活动中,我有一个带有一些片段的抽屉列表。

当我点击任何片段时,我看到了叠加效果。

在MainActivity中,我调用负责使片段转换的displayView,我将替换container_body元素作为片段的内容,但这并不起作用。

有什么建议吗?

[图片]第一个屏幕

enter image description here

片段屏幕 enter image description here

MainActivity

@Override
protected void onCreate(Bundle savedInstanceState) {
   setContentView(R.layout.activity_main);


private void displayView(int position) {
   Fragment fragment = null;
   String title = getString(R.string.app_name);
   switch (position) {
      case 0:
        fragment = new PostView();
        title = getString(R.string.title_section1);
        break;
      case 1:
        fragment = new RegionView();
        title = getString(R.string.title_section2);
        break;
      default:
        break;
    }

   if (fragment != null) {
    FragmentManager fragmentManager = getSupportFragmentManager();
    FragmentTransaction fragmentTransaction =     fragmentManager.beginTransaction();
    fragmentTransaction.replace(R.id.container_body, fragment);
    fragmentTransaction.commit();
    // set the toolbar title
    getSupportActionBar().setTitle(title);
}

activity_main.xml中

<LinearLayout
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   android:orientation="vertical">

<android.support.v7.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_height="?attr/actionBarSize"
    android:layout_width="match_parent"
    android:minHeight="?attr/actionBarSize"
    android:background="?attr/colorPrimary"
    app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
    app:contentInsetStart="72dp" />

    <FrameLayout
        android:id="@+id/container_body"
        android:layout_width="wrap_content"
        android:layout_height="0dp"
        android:layout_weight="1.25"
        android:layout_gravity="top|left|bottom|right">

        <ScrollView
            android:layout_width="match_parent"
            android:layout_height="match_parent">

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:background="@drawable/tile_bg"
                android:orientation="vertical" >

                <ListView
                    android:id="@+id/list_view_messages"
                    android:layout_width="fill_parent"
                    android:layout_height="0dp"
                    android:layout_weight="1"
                    android:background="@null"
                    android:divider="@null"
                    android:transcriptMode="alwaysScroll"
                    android:stackFromBottom="true">
                </ListView>

            </LinearLayout>
        </ScrollView>

        <LinearLayout
            android:id="@+id/llMsgCompose"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:background="@color/white"
            android:orientation="horizontal"
            android:weightSum="3" >

            <EditText
                android:id="@+id/inputMsg"
                android:layout_width="0dp"
                android:layout_height="fill_parent"
                android:layout_weight="2"
                android:background="@color/bg_msg_input"
                android:textColor="@color/text_msg_input"
                android:paddingLeft="6dp"
                android:paddingRight="6dp"/>

            <Button
                android:id="@+id/btnSend"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:background="@color/bg_btn_join"
                android:textColor="@color/white"
                android:text="@string/btn_send" />
        </LinearLayout>

    </FrameLayout>

<com.heinrichreimersoftware.materialdrawer.DrawerView
android:id="@+id/drawer"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="start"
android:fitsSystemWindows="true" />

片段

public class PostView extends Fragment实现了CommonPresenter {

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){

    View view = inflater.inflate(R.layout.fragment_post, null);
    return (view);
}

0 个答案:

没有答案