在我的应用程序中,我使用以下 FrameLayout 作为将成为页脚的片段的容器:
<FrameLayout
android:id="@+id/frameLayoutFooter"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"/>
在我的活动中,我使用以下代码来添加片段:
FragmentManager fm = getSupportFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
mFooterFragment = new FooterFragment();
ft.add(R.id.frameLayoutFooter, mFooterFragment);
ft.commit();
我的页脚片段的布局是:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/footerContainer"
android:layout_width="fill_parent"
android:layout_height="165dip"
android:layout_alignParentBottom="true"
android:background="#15355b" >
<RelativeLayout
android:id="@+id/relativeLayoutTopSetcion"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
..... some buttons and imageviews here...
</RelativeLayout>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/relativeLayoutBottomSetcion"
android:layout_width="fill_parent"
android:layout_height="350dip"
android:layout_alignParentBottom="true"
android:visibility="**invisible**" >
..... some more imageviews and textviews here...
</RelativeLayout>
</RelativeLayout>
在某些时候,我想扩展页脚并在其中放置更多的图像视图和文本视图,但不幸的是我所有的尝试都失败了,结果是片段的 FrameLayout确实得到了扩展,但它的子元素留在了上部(旧底部)即使他们将 alignParentBottom 设置为 true - 我得到的是页脚的高度确实发生了变化,并且它的底部新添加的部分是透明的,这让我认为它的孩子没有使用它的新布局参数进行更新。 另一件事是我确实看到了 mRelativeLayoutBottomSetcion.setVisibility(View.VISIBLE) 的变化-但不在 FrameLayout 的底部(新扩展的部分),而是在扩展前的原始大小的底部。
为了扩展片段,我使用了这个框架所属的活动中的以下代码:
ViewGroup.LayoutParams params = mFrameLayoutFooter.getLayoutParams();
params.height = 500;
mFrameLayoutFooter.requestLayout();
// setting the bootom relative layout to be visible
mRelativeLayoutBottomSetcion.setVisibility(View.VISIBLE);
我究竟做错了什么 ?
消耗性页脚是否有已知的 UI 模式?
提前致谢