2012-10-26 2 views
1

활동의 루트보기를 찾은 다음 맨 아래에 framelayout을 추가하려면 어떻게해야합니까? 반대로 아래 코드는 상단에 추가되지만 하단에는 삽입 할 수 없습니다. 루트를 활용하려면 다음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

감사합니다.하지만 프로그래밍 방식으로 모든 활동에 추가하고 싶습니다. – thecr0w

답변

1

getWindow().getDecorView().findViewById(android.R.id.content) android.R.id.contentFrameLayout이다. 따라서 하위 뷰를 아래쪽으로 정렬 할 수 없습니다.

은 당신이 할 수있는 것은 추가하는 RelativeLayout 높이와 폭에 대한 FILL_PARENT와 android.R.id.content합니다.

이제 FrameLayoutRelativeLayoutALIGN_PARENT_BOTTOM으로 추가 할 수 있습니다.

+0

이 하단 바닥 글이 활동의 ​​콘텐츠를 오버레이합니까? – thecr0w

+0

예, 부모보기가 FrameLayout이므로 액티비티의 내용을 오버레이해야합니다. –

1

이 루트 레이아웃 (당신의 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"> 

활동 클래스에 일부 id 할당, 루트 레이아웃

LinearLayout mRootLayout; 

mRootLayout=(LinearLayout) findViewById(R.id.linear_root); 

mRootLayout.add(yourFrameLayout);// this will add your FrameLayout at the last 

업데이트지도 사용할 수있는 모든 작업의 ​​레이아웃 getRootView

또는

+0

감사합니다.하지만 프로그래밍 방식으로 추가하고 싶습니다. – thecr0w

+0

내가 대답 한 것은 프로그래밍 방식으로 발생했습니다. –

+0

하지만이 사람은 각 활동에 + id가 필요합니다. 맞습니까? – thecr0w

3

은 하나의 솔루션 당신이 첫 번째 상대 레이아웃을 XML로, XML로 사용해야하고 그 상대 레이아웃 내부보다 것은 그래서 당신의

android:layout_alignParentBottom="true" 

된 직후 당신의 프레임 레이아웃 및 프레임 레이아웃의 설정 속성을 취할 수 있습니다 프레임 레이아웃은 screen.Hope의 하단에 표시됩니다 당신을 위해 완벽하게 작동합니다.

1

는 바닥 글을 추가하려는 것처럼 보입니다. xml을 framelayout으로 시작한 다음 바닥 글을 선형 또는 상대 레이아웃으로 포함하고 android : layout_gravity = "bottom"을 지정하십시오. 이렇게하면 문제가 해결됩니다.

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 픽셀 위치합니다.

관련 문제