2013-12-15 1 views
0

난 그냥 안드로이드 개발을 시작하고 어떤 정보를 찾을 수없는 문제로 실행됩니다. 두 개의 창 템플릿을 사용하여 프로젝트를 만들었습니다. AdView과 많은 다른 뷰를 2 개의 창 모드 (activity_setting_twopane.xml)에있는 동안 내 앱에 추가 할 수있었습니다. 어디 투쟁은 작은 디스플레이 (activity_setting_detail.xml, activity_setting_list.xml 또는 fragment_setting_detail.xml?)에 대한 다른 레이아웃에보기 (any)를 추가하는 방법입니다. 나는 이것이 올바른 방법하지만 지금 작동 유일한 아니라고 생각안드로이드에서 xml 조각보기 추가

<fragment xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    xmlns:ads="http://schemas.android.com/apk/res-auto" 
    android:id="@+id/setting_list" 
    android:name="com.test.firstapp.SettingListFragment" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_marginLeft="16dp" 
    android:layout_marginRight="16dp" 
    tools:context=".SettingListActivity" 
    tools:layout="@android:layout/list_content" > 

    <com.google.android.gms.ads.AdView 
     android:id="@+id/adView" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     ads:adSize="BANNER" 
     ads:adUnitId="xxxxxxxxxxxxxxxxx" > 
    </com.google.android.gms.ads.AdView> 

</fragment> 

fragment_setting_detail.xml하는 뷰 (AN AdView)를 추가 할 수 있었다. 하지만 AdView은 화면 상단에 표시되며, 대부분의 매개 변수를 사용할 수 없으므로 Fragments에 위치하기 때문에 배치 방법을 모릅니다. 심지어는 LinearLayout에 포장하려고했지만 코드에서 레이아웃에 뷰를 추가하려는 샘플 프로젝트가 충돌합니다. 어떤 견해를 추가 할 올바른 방법은 Fragments (샘플을 사용하여 이해하기 때문에)을 기반으로합니까? 사전

+0

중력을 'Android : layout_gravity : bottom'처럼'AdView'에 설정하려고 했습니까? – Fllo

+0

네, 전에 안드로이드를 추가하여 시도 : layout_gravity = "하단"하지만 그것도 작동하지 않습니다. 그것은 맨 위에 있습니다. – Digit

+0

'weightSum'을 가진'layout_weight'를 부모에게 추가하려고합니다. 또는 'RelativeLayout'방식으로 시도해보십시오. 아래에서 내 업데이트 대답을 참조하십시오. – Fllo

답변

1

의 많은 들으이 작업을 수행하는 올바른 방법 :

<!-- assign a layout_gravity to your Views --> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    xmlns:ads="http://schemas.android.com/apk/res-auto" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context=".SettingListActivity" 
    tools:layout="@android:layout/list_content" 
    android:orientation="vertical" > 

    <fragment 
     android:id="@+id/setting_list" 
     android:name="com.test.firstapp.SettingListFragment" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_marginLeft="16dp" 
     android:layout_marginRight="16dp" /> 

    <com.google.android.gms.ads.AdView 
     android:id="@+id/adView" 
     android:layout_width="480dp" 
     android:layout_height="75dp" 
     ads:adSize="BANNER" 
     ads:adUnitId="xxxxxxxxxxxxxxxxx" 
     android:layout_gravity="bottom" /> 

</LinearLayout> 

참고 :
android:gravityandroid:layout_gravity을 혼동하지 마십시오.

android:gravity> "어린이"에 중력을 지정하십시오.
android:layout_gravity> "상위"에 중력을 지정하십시오.
자세한 내용은이 답변을 참조하십시오 : Android - gravity and layout_gravity

편집 : 참고로
하십시오 ViewGroup은이 :

"(. 아이라고 함) 다른 뷰를 포함 할 수있는 특별한 뷰는 뷰 그룹은 레이아웃 및 뷰 컨테이너의 기본 클래스입니다. " REF : ViewGroup Android Developer Documentation

귀하의 fragmentAdView의 부모가 될 수 없다, 당신은 등 LinearLayout, RelativeLayoutAbsoluteLayout는 (사용되지 않음)로 "부모보기", TableLayout을 수행해야하기 때문에

그리고 당신의 AdView 실패 필요 너비/높이 값을 여기에 보시려면 AdView failed to instantiate으로 지정하십시오. 읽는 방법 : com.google.ads.AdView failed to instantiate

희망이 있습니다.

+0

고마워요. 어쩌면 나는 다른 중력 매개 변수를 사용했다 :) – Digit

+0

나는 멀티 - 창에서'layout_gravity'도 작동한다고 생각한다. 위와 똑같습니다.(당신은 환영합니다) – Fllo

+0

멀티 패널에서 나는 어떤 문제도 가지지 않도록 상대 레이아웃을 사용할 수있었습니다. 방금 fragment_setting_detail.xml에 레이아웃을 추가하는 데 어려움이 있습니다. MyadView.loadAd (adRequest)를 호출 할 때 코드가 충돌하기 때문입니다. Btw : 위의 코드는 레이아웃 디자이너 "activity_setting_list.xml : com.android.layoutlib.bridge.MockView를 android.view.ViewGroup에 캐스트 할 수 없습니다."및 "com.google.android로 전환 할 때 Eclipse ADT에서 두 가지 오류가 발생합니다 .gms.ads.AdView를 인스턴스화하지 못했습니다. ' 하지만 작동합니다 – Digit

관련 문제