2012-05-14 18 views
1

私は別の投稿を閲覧し続け、それらはすべてフッターを画面に残そうとしています。Android - 簡単なフッターを追加するにはどうすればよいですか?

しかし、すべてのページにフッターが表示されます。私のページの中にはスクロールしていないものもあれば、スクロールしているものもあります。スクロールがあるときはいつでも、スクロールバーの下にフッターを表示したいと思います。それはどうやってできますか?私はこのページがあれば

たとえば、:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     android:orientation="vertical" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     > 

<ScrollView 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" >  

<LinearLayout 
     android:orientation="vertical" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     >  

<TextView 
    android:id="@+id/page_exlain"  
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="Some text that either extends far down or is pretty short." 
    android:layout_marginTop ="20dp" 
    />   


</LinearLayout> 

</ScrollView> 

</LinearLayout> 

を必ずしも倍の上に表示されないこれにフッターを追加するための良い方法は何ですか?

ありがとうございます!

答えて

4

私のやり方は、親レイアウト内に2つの線形レイアウトを持つことです。最初のものは私がコンテンツエリアと呼ぶもので、1の重みを持ちます。つまり、親ビューからできるだけ多くのスペースを取ろうとします。一方、他のビュー(コンテンツ領域)が空であっても、コンテンツの内側には高さが残っています。

このレイアウトのcontent部分内にscrollviewまたは他のタイプのレイアウトを追加することができます。これは、2つの要素の配置を壊すことなく、常にフッターの位置を心配する必要はなくスクリーン。

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
        android:id="@+id/main" 
        android:layout_width="fill_parent" 
        android:layout_height="fill_parent" 
        android:orientation="vertical" > 
<LinearLayout 
        android:id="@+id/content" 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:layout_weight="1" 
        android:orientation="vertical" > 
</LinearLayout> 
<LinearLayout 
        android:id="@+id/footer" 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" > 
</LinearLayout> 

少し内容が前のコードに追加して、あなたは、このようなもので終わらそれは非常に単純化していますことに注意してください。あなたは、体重特性を適切に理解している限り、ニーズに合わせて変更することはありません。

enter image description here

あなただけscrollviewsを挿入したり、あなたが必要とフッター忘れ何でも、それは親の一つであったかのように「コンテンツ」LinearLayoutを治療する必要があります。フッタが再帰的である場合、あなたはそれを複数回使用しようとしている意味、あなたが直接、すべてのレイアウトにして、それをコピー

@layout/footerがあなたのXMLファイルである
<include layout="@layout/footer" /> 

なく、XMLでそれを読み込むことができることに注意してくださいレイアウトフォルダに再利用するフッターの内容を追加します。これは手動で追加するのと事実上同じですが、複数のファイルにまたがって保守する必要がないという利便性があります。

私は助けてくれました。

+1

+1 ...あなたのアプリの構造によっては、これをすべて基本アクティビティに抽象化して、一般的な「ベース」レイアウトファイルにコンテンツを追加する保護されたメソッドを作成することができます。このように、今後のすべてのアクティビティはsetContentView()と同じように簡単に設定されます。 – Phix

関連する問題