2016-10-13 157 views
0

我正在实例化另一片段内的片段。内部片段的宽度和高度定义为match_parent。还有他们的父母。片段不能正确填充屏幕

这是main Fragment的代码。内部的CustomFragment是内部片段。它是一个带有日历的常规片段。

public class CalendarFragment extends Fragment { 
... 
public void onViewCreated(LayoutInflater inflater, ViewGroup parent, Bundle savedInstanceState){ 
customFragment = new CustomFragment(); 
        customFragment.setArguments(bundle); 

        FragmentTransaction transaction = getChildFragmentManager().beginTransaction(); 
        transaction.add(R.id.calendar_container, customFragment); 
        transaction.commit(); 
... 
} 

当这个fargment生效时,包含日历的内部片段根据每个日历单元的内容来调整其高度。 截图。注意空白区域:

enter image description here 如果两个片段在其布局中都有match_parent,为什么会出现这种情况?

+0

如果你设置了'android:fitsSystemWindows =“true”'',那么在你的'Activity'中删除它。 – Ironman

+0

@Ironman我没有清单中的这个参数。目前,我的解决方案是根据父代片段高度和行数设置每个单元的最小高度 – learner

回答

0
  1. 请确认,您的第二个片段的容器(如果有的话)也match_parent
  2. 尝试给片段不同的背景颜色(即机器人:颜色/红),以检查是否片段其实已经全屏幕,但具有透明背景。并且您的日历视图仅占小部分片段区域。
+0

正如我所说的,两者都是match_parent – learner

0

试图取代这一行:

transaction.add(R.id.calendar_container, customFragment); 

这一行:

transaction.replace(R.id.calendar_container, customFragment); 

和的行之后添加此行的承诺:

getFragmentManager().executePendingTransactions(); 

我希望它会帮助你,对我来说它正在完成这项工作。