如何找到活动的根视图,然后在底部添加framelayout?相反,下面的代码添加到顶部,但不能到底。
FrameLayout aLayout = new FrameLayout(getActivity());
aLayout.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
ImageView image = new ImageView(getActivity());
image.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
image.setImageResource(R.drawable.alayer_0);
adLayout.addView(image);
ViewGroup content = (ViewGroup) getActivity().findViewById(android.R.id.content);
content.addView(aLayout);
答案 0 :(得分:3)
可能是一个解决方案是你应该使用xml,在xml中首先采用一个相对布局,而不是在内部相对布局中采用框架布局并将框架布局的属性设置为 -
android:layout_alignParentBottom="true"
所以你的框架布局将显示在屏幕的底部。希望它能为你完美地工作。
答案 1 :(得分:1)
将一些id
分配给您的Root布局(XML的主布局)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/linear_root"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
活动类,映射根布局
LinearLayout mRootLayout;
mRootLayout=(LinearLayout) findViewById(R.id.linear_root);
mRootLayout.add(yourFrameLayout);// this will add your FrameLayout at the last
更新:要获取任何活动的根布局,您可以使用getRootView
或getWindow().getDecorView().findViewById(android.R.id.content)
答案 2 :(得分:1)
android.R.id.content 是FrameLayout
。因此,您无法将子视图与底部对齐。
您可以为{&1>}添加一个RelativeLayout
到 android.R.id.content ,FILL_PARENT
为高度和宽度。
现在,您可以使用FrameLayout
将RelativeLayout
添加到ALIGN_PARENT_BOTTOM
。
答案 3 :(得分:1)
看起来好像要添加页脚。使用framelayout启动你的xml,然后将你的页脚包含在线性或相对布局中,并给android:layout_gravity =“bottom”。这将解决您的问题。
答案 4 :(得分:0)
或者,您也可以在FrameLayout周围添加边距。无需额外的RelativeLayout。
DisplayMetrics metrics = MyActivity.this.getResources().getDisplayMetrics();
LayoutParams params = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
params.setMargins(0, metrics.heightPixels - 20, 0, 0);
myFrameLayout.setLayoutParams(params);
这将使FrameLayout从屏幕底部定位20个像素。