2013-04-09 94 views
0

我收到一個錯誤,指出Scrollview只能託管一個孩子。我想要做的是讓整個界面滾動,減去頂部的廣告。因此,現在我已經將廣告展示在線性佈局中,並在其中顯示了滾動視圖。在scrollview內部是另一個線性佈局,其他所有內容都在這個佈局中。我不知道該怎麼做。我真的需要廣告不滾動,但如果我必須將廣告代碼放在滾動視圖中,我會。我只是非常確定有一種方法可以做到我想要的,但我找不到它。Scrollview與頂部不滾動的廣告

這裏是我的xml佈局...

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads" 
android:id="@+id/AdLinearLayout" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:orientation="vertical" > 

<!-- Ad Placeholder --> 

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

<ScrollView 
    android:id="@+id/BaseScrollView" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" > 

    <LinearLayout 
     android:id="@+id/baseVerticalLinearLayout" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:orientation="vertical" > 

     <LinearLayout 
      android:id="@+id/LinearLayoutH1" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" > 

      <TextView 
       android:id="@+id/textView1" 
       android:layout_width="0dp" 
       android:layout_height="wrap_content" 
       android:layout_weight="1" 
       android:gravity="left" 
       android:text="@string/Sad" /> 

      <TextView 
       android:id="@+id/textView2" 
       android:layout_width="0dp" 
       android:layout_height="wrap_content" 
       android:layout_weight="1" 
       android:gravity="right" 
       android:text="@string/Happy" /> 
     </LinearLayout> 

     <SeekBar 
      android:id="@+id/happinessBarID" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:max="@integer/SliderMax" 
      android:progress="@integer/SliderDefault" /> 

     <LinearLayout 
      android:id="@+id/LinearLayoutH2" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" > 

      <TextView 
       android:id="@+id/textView3" 
       android:layout_width="0dp" 
       android:layout_height="wrap_content" 
       android:layout_weight="1" 
       android:gravity="left" 
       android:text="@string/Tired" /> 

      <TextView 
       android:id="@+id/textView4" 
       android:layout_width="0dp" 
       android:layout_height="wrap_content" 
       android:layout_weight="1" 
       android:gravity="right" 
       android:text="@string/Awake" /> 
     </LinearLayout> 

     <SeekBar 
      android:id="@+id/energyBarID" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:max="@integer/SliderMax" 
      android:progress="@integer/SliderDefault" /> 

     <LinearLayout 
      android:id="@+id/LinearLayoutH3" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" > 

      <TextView 
       android:id="@+id/textView5" 
       android:layout_width="0dp" 
       android:layout_height="wrap_content" 
       android:layout_weight="1" 
       android:gravity="left" 
       android:text="@string/Calm" /> 

      <TextView 
       android:id="@+id/textView6" 
       android:layout_width="0dp" 
       android:layout_height="wrap_content" 
       android:layout_weight="1" 
       android:gravity="right" 
       android:text="@string/Anxious" /> 
     </LinearLayout> 

     <SeekBar 
      android:id="@+id/anxietyBarID" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:max="@integer/SliderMax" 
      android:progress="@integer/SliderDefault" /> 

     <LinearLayout 
      android:id="@+id/LinearLayoutH4" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" > 

      <TextView 
       android:id="@+id/textView7" 
       android:layout_width="0dp" 
       android:layout_height="wrap_content" 
       android:layout_weight="1" 
       android:gravity="left" 
       android:text="@string/No_Pain" /> 

      <TextView 
       android:id="@+id/textView8" 
       android:layout_width="0dp" 
       android:layout_height="wrap_content" 
       android:layout_weight="1" 
       android:gravity="right" 
       android:text="@string/Max_Pain" /> 
     </LinearLayout> 

     <SeekBar 
      android:id="@+id/painBarID" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:max="@integer/SliderMax" 
      android:progress="@integer/SliderDefault" /> 

     <DatePicker 
      android:id="@+id/datePicker1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" /> 

     <TimePicker 
      android:id="@+id/timePicker1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" /> 

     <EditText 
      android:id="@+id/noteTextFieldID" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:ems="10" 
      android:hint="@string/Note_Hint" 
      android:inputType="textMultiLine" 
      android:maxLength="@integer/NoteLimit" /> 

     <Button 
      android:id="@+id/enterButtonID" 
      android:layout_width="132dp" 
      android:layout_height="wrap_content" 
      android:gravity="center" 
      android:onClick="dialogPop" 
      android:text="@string/EnterButtonText" /> 
    </LinearLayout> 
</ScrollView> 

</LinearLayout> 
+0

什麼不起作用? – nhaarman 2013-04-09 16:51:15

+0

它看起來像這個ScrollView只有一個孩子......試着再次保存這個文件並清理項目。 – Sam 2013-04-09 16:51:46

+0

我會試試。我不知道爲什麼它不喜歡scrollview,但我會給它打掃一下。 (雖然如果我沒有記錯的話,我昨天在做這件事的時候已經做了幾次清理這個項目。) – fauxfire76 2013-04-09 17:05:43

回答

1

這裏的例子滾動型佈局從AdMob的Ad Catalog項目略加修改:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 
    <com.google.ads.AdView android:id="@+id/adView" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignParentTop="true" 
     ads:adUnitId="@string/admob_id" 
     ads:adSize="BANNER"/> 
    <ScrollView android:id="@+id/scrollLayout" 
     android:layout_height="fill_parent" 
     android:layout_width="fill_parent" 
     android:layout_below="@id/adView"> 
     <LinearLayout android:layout_height="fill_parent" 
      android:layout_width="fill_parent"> 
      <TextView android:layout_height="wrap_content" 
       android:layout_width="wrap_content" 
       android:text="@string/advancedLayouts_scroll_view_lorem_ipsum"/> 
     </LinearLayout> 
    </ScrollView> 
</RelativeLayout> 

您不希望廣告能夠對您ScrollView的頂部,所以要明確地告訴它坐在com.google.ads.AdView以下。

+0

謝謝。除了現在它想要將廣告覆蓋在我的應用程序上,而不是將UI向下調整以外,我能夠讓UI正常工作。任何想法我需要做到這一點? – fauxfire76 2013-04-10 17:16:13

+0

您是否已將此行添加到您的ScrollView或AdView的同級元素:android:layout_below =「@ id/adView」'?這應該照顧它。 – 2013-04-10 23:58:34

0

這完全適用於我,請如果需要更多的幫助告訴我。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" > 

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

    <RelativeLayout 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" > 

     <ScrollView 
      xmlns:android="http://schemas.android.com/apk/res/android" 
      android:id="@+id/scrollView" 
      android:layout_width="fill_parent" 
      android:layout_height="match_parent" 
      android:background="@drawable/back3" > 

      <LinearLayout 
       xmlns:android="http://schemas.android.com/apk/res/android" 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent" 
       android:gravity="center_horizontal" 
       android:orientation="vertical" > 

       <TextView 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_gravity="top|center_horizontal" 
        android:layout_marginTop="5dp" 
        android:text="Text" /> 

       <TextView 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_gravity="center_vertical|center_horizontal" 
        android:layout_marginBottom="20dp" 
        android:text="Text2" /> 
      </LinearLayout> 
     </ScrollView> 
    </RelativeLayout> 

</LinearLayout> 
+0

這與我在外部Linearlayout和scrollview之間放置relativelayout圖層有什麼不同? – fauxfire76 2013-04-09 20:49:52