[英]Inflated Fragment not consuming all the space
因此,我最近一直在努力将应用程序切换为使用Fragments,以使其更加灵活。 我注意到的一件事是,当我为片段视图充气时,它并没有占据整个屏幕,顶部(动作栏下方)仍然有一个间隙,实际上是我的activity_main.xml的一部分
这是我的看法,也是我在哪里膨胀。
activity_main.xml
<android.support.v4.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/main_container"
android:layout_width="fill_parent"
android:layout_height="fill_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=".MainActivity"
android:background="@color/mainBlue"
android:orientation="vertical" >
<TextView
android:id="@+id/appTitle"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/app_name"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textColor="@color/white"
android:gravity="center_horizontal"
android:textSize="75sp"
android:layout_weight="2"/>
<TextView
android:id="@+id/newRecord"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/newRecord"
android:textAppearance="?android:attr/textAppearanceLarge"
android:gravity="center_horizontal"
android:textSize="50sp"
android:textColor="@color/white"
android:layout_weight="1" />
<TextView
android:id="@+id/pastRecords"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/pastRecords"
android:textAppearance="?android:attr/textAppearanceLarge"
android:gravity="center_horizontal"
android:textSize="50sp"
android:textColor="@color/white"
android:layout_weight="1" />
<TextView
android:id="@+id/statistics"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/statistics"
android:textAppearance="?android:attr/textAppearanceLarge"
android:gravity="center_horizontal"
android:textSize="50sp"
android:textColor="@color/white"
android:layout_weight="1" />
<TextView
android:id="@+id/settings"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/settings"
android:textAppearance="?android:attr/textAppearanceLarge"
android:gravity="center_horizontal"
android:textSize="50sp"
android:textColor="@color/white"
android:layout_weight="1" />
</LinearLayout>
<!-- The navigation drawer -->
<ListView
android:id="@+id/list_slidermenu"
android:layout_width="240dp"
android:layout_height="match_parent"
android:layout_gravity="start"
android:choiceMode="singleChoice"
android:divider="@color/list_divider"
android:dividerHeight="1dp"
android:listSelector="@drawable/list_selector"
android:background="@color/list_background"/>
</android.support.v4.widget.DrawerLayout>
new_record.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:background="@color/mainBlue">
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_weight="1" >
<EditText
android:id="@+id/pricePerGallon"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:hint="@string/pricePerGallon"
android:inputType="numberDecimal"
android:textSize="30sp"
android:textColor="@color/white"
android:layout_marginLeft="15dp"
android:layout_marginRight="15dp"
android:layout_weight="1">
<requestFocus />
</EditText>
<EditText
android:id="@+id/gallons"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:hint="@string/gallons"
android:inputType="numberDecimal"
android:textSize="30sp"
android:textColor="@color/white"
android:layout_marginLeft="15dp"
android:layout_marginRight="15dp"
android:layout_weight="1"/>
<EditText
android:id="@+id/odometer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:hint="@string/odometer"
android:inputType="numberDecimal"
android:textSize="30sp"
android:textColor="@color/white"
android:layout_marginLeft="15dp"
android:layout_marginRight="15dp"
android:layout_weight="1"/>
<EditText
android:id="@+id/date"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="date"
android:textSize="30sp"
android:textColor="@color/white"
android:layout_marginLeft="15dp"
android:layout_marginRight="15dp"
android:layout_weight="1"/>
<EditText
android:id="@+id/comments"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:textSize="30sp"
android:textColor="@color/white"
android:layout_marginLeft="15dp"
android:layout_marginRight="15dp"
android:hint="@string/comments"
android:layout_weight="1"/>
<CheckBox
android:id="@+id/completeFill"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/notCompleteFill"
android:textColor="@color/white"
android:layout_weight="1" />
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:background="@color/mainBlue"
android:gravity="center_horizontal" >
<TextView
android:id="@+id/save"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/save"
android:textSize="50sp"
android:textColor="@color/white"
android:layout_weight="1"
android:gravity="center_horizontal"/>
<TextView
android:id="@+id/reset"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/reset"
android:textSize="50sp"
android:textColor="@color/white"
android:layout_weight="1"
android:gravity="center_horizontal" />
</LinearLayout>
</LinearLayout>
MainActivity.java (在此处夸大片段)
if (fragment != null) {
FragmentManager fragmentManager = getFragmentManager();
fragmentManager.beginTransaction()
.replace(R.id.main_container, fragment).commit();
// update selected item and title, then close the drawer
mDrawerList.setItemChecked(position, true);
mDrawerList.setSelection(position);
setTitle(navMenuTitles[position]);
mDrawerLayout.closeDrawer(mDrawerList);
} else {
// error in creating fragment
Log.e("MainActivity", "Error in creating fragment");
}
有趣的是,如果我使用意图并调用NewRecord.java类,则该视图可以正常工作。 如果我夸大我的NewRecordFragment.java正在取代NewRecord.java,是当我有问题。
有任何想法吗?
占用空间的原因是因为您的容器布局(将Fragment
填充到其中的布局)已应用了填充 :
<LinearLayout
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/main_container"
android:layout_width="fill_parent"
android:layout_height="fill_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=".MainActivity"
android:background="@color/mainBlue"
android:orientation="vertical" >
删除顶部,底部,左侧和右侧的填充 ,您的Fragment
将占用所有空间。
我将删除这些行:
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.