4

ランチャー画面にショートカットを追加するのと同様のListActivityを選択しようとしています。私は自分のヘッダーとフッターを巻いています。これは、画面上に表示されているときに画面の上下に「スティッキー」になりたいものです。これを行うために、ヘッダーを上にドッキングするように設定されたヘッダー、下にドッキングするように設定されたフッター、およびヘッダーの下とフッターの上に移動するように設定されたRelativeLayoutを使用しています。アクティビティの全体的なレイアウトに関して、これは私が期待するレンダリングです。ヘッダーは上部に粘着性があり、フッターは下部に粘着性があり、リストはそれらの間をスクロールします。AndroidのRelativeLayoutとwrap_contentの高さですか?

私はルートとしてRelativeLayoutに切り替えたときに1つの奇妙なことが起こったのですが。フォームがそれに表示されるコンテンツとしてのみと高いですが、私はRelativeLayoutに切り替えたら、レンダリングに思われるので、私は私の活動の高さがwrap_contentになりたい

enter image description here

:以下のスクリーンショットを参照してくださいコンテンツは有効ではありませんが、画面全体を占めています(fill_parent)。 fill_parentスタイルでは、リストの末尾とフッターの間に空白が残っているため、画面を埋めるのに十分なリスト項目がないことに注意してください。 LinearLayoutでうまくいきましたが、今では無視されているようです。だから私はRelativeLayoutで直接高さをハードコーディングしようとしましたが、まだ動作せず、まだfill_parentとしてレンダリングしています。ここで

は私のレイアウトのコードは次のとおりです。

<?xml version="1.0" encoding="utf-8"?> 
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
        style="@style/GroupsList" 
        android:layout_height="wrap_content"> 

     <FrameLayout android:layout_height="wrap_content" 
        android:layout_width="fill_parent" 
        android:id="@+id/hdrGroups" 
        android:layout_alignParentTop="true"> 
      <include layout="@layout/title" 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content"> 
      </include> 
     </FrameLayout> 

     <FrameLayout style="@style/MyFooter" 
        android:layout_height="wrap_content" 
        android:layout_width="fill_parent" 
        android:layout_alignParentBottom="true" 
        android:id="@+id/ftrGroups"> 
      <ImageView style="@style/CloseButton" 
         android:layout_height="wrap_content" 
         android:layout_width="wrap_content" 
         android:src="@drawable/add" 
         android:id="@+id/imgGroupsAdd" 
         android:clickable="true"> 
      </ImageView> 
     </FrameLayout> 

     <ListView android:divider="#9f9f9f" 
        android:id="@+id/android:list" 
        android:choiceMode="singleChoice" 
        android:dividerHeight="1dp" 
        android:layout_height="wrap_content" 
        android:layout_width="fill_parent" 
        android:layout_below="@id/hdrGroups" 
        android:layout_above="@id/ftrGroups"> 
     </ListView> 

     <TextView android:text="@string/browser_no_groups" 
        style="@style/ListedItemB" 
        android:id="@+id/android:empty" 
        android:layout_height="wrap_content" 
        android:layout_above="@id/ftrGroups" 
        android:layout_below="@id/hdrGroups" 
        android:layout_width="fill_parent"> 
     </TextView> 
    </RelativeLayout> 

すべてのレイアウトは、XMLを介して行われます...私は、コード内の任意のレイアウトは致しておりません。 アクティビティ全体がwrap_contentモードの高さで動作しているときに、固定ヘッダーとフッターを取得するにはどうすればよいですか? RelativeLayoutではなく、これについて別の方法で行くべきでしょうか?ご希望の動作は相対的なレイアウトのために可能ではない開発者向けドキュメントによると

+0

はあなたが複製するより完全なコード例を投稿することができている作業を開始し、画面の高さを得ることができますスクリーンショットと問題?私の友人と私はアイデアを持っていますが、あなたが提供していない欠けている部分をまとめるにはあまりにも怠惰です。 –

+0

私は次のカップルの日に何かを一緒に投げることができるかどうかを見ていきます。 – eidylon

+0

さて、私はついにチャンスを得て、例を投げました...ここで見つけてください:http://dl.dropbox.com/u/19767586/layout.test.zip私はまた2つのスクリーンを含みました、1つはそれが見えるようなものです、1つはそれが見えるべきであるものです。 – eidylon

答えて

24

;(

「あなたはRelativeLayoutの大きさとその子の位置との間の循環依存を持つことができないことに注意してください例えば、あなた。その高さWRAP_CONTENTに設定し、子供がALIGN_PARENT_BOTTOMに設定されているRelativeLayoutを持つことができません。」

RelativeLayout

をあなたの問題を解決するためにあなたが多分wrap_contentに設定すると、コードを介した最大高さを設定する線形レイアウトを、使用することを試みることができます画面の高さに合わせる。

ここget screen height

+0

Drat!まあ...私はすでにその間に別のレイアウトで書き直しましたが、これはいいと思います。 : - ? – eidylon

+1

私はまったく同じ問題を抱えています。 Androidの断片化は最高ですLinearLayoutはレイアウトのフッターをねじ込み、リストの長さが十分に長い場合は、下端がゼロになるようにします。とても悲しい。 – halxinate

+0

下のビューの上に別のビューを配置したかったのですが、この問題に直面したので、逆の順序で行いました:トップビューを 'ALIGN_PARENT_TOP'(問題から脱出)に設定し、下のビューを 'layout_below'で設定します。私の問題は修正されました –

0

を説明するようにあなたは私だけでframeLayoutの私RelativeLayoutを変更し、すべてが

関連する問題