2011-10-20 12 views
12

Googleマップ、Facebook、Foursquareなどの多くの人気アプリでは、ほとんどのアクティビティにヘッダーやフッターバーがあります。これらのヘッダーには、しばしば非常に便利なボタンが含まれています。 私のアプリケーション用に作成したいと思います。彼らはどのように行われているか知っていますか?私は今まで何も見つけることができませんでした。 http://www.flickr.com/photos/calebgomer/6262815430 http://www.flickr.com/photos/calebgomer/6262815458Androidアプリケーション用のヘッダーまたはフッターのボタンバーを作成するには

答えて

14

を、あなたのheader-footer xmlを作り、あなたのactivityのいずれかにそれを使用することができますまた、あなただけのヘッダー内のコントロールため書き込みコードに必要-footerをHeaderFooter.javaに1回入れて、プロジェクトにアクセスできます。

その後、今すぐあなたの他のすべてのアクティビティにアクティビティの上拡張し、中にあなたの特定のビューを膨らませる一つHeaderFooter.java活動

public class HeaderFooter extends Activity { 
     public void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.headerfooter); 
     } 
} 

を作成し、あなたのHederFooter.xml

<?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" android:weightSum="10" 
    android:id="@+id/commonlayout" android:background="#FFFFFF"> 
    <LinearLayout android:id="@+id/llheader" 
     android:layout_width="fill_parent" android:layout_height="0dp" 
     android:background="@drawable/bar" android:layout_weight="1"> 



     <RelativeLayout android:id="@+id/relativeLayout1" 
      android:layout_width="fill_parent" android:layout_height="fill_parent" 
      android:layout_gravity="center"> 
      <Button 
       android:id="@+id/Button_HeaderFooterSubscribe" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_alignParentRight="true" 
       android:layout_marginRight="2dp" 
       android:layout_centerVertical="true" 
       android:background="@drawable/subscribe" 
       /> 
       <Button 
       android:id="@+id/Button_logout" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_alignParentRight="true" 
       android:layout_marginRight="2dp" 
       android:layout_centerVertical="true" 
       android:background="@drawable/logout" 
       /> 
       <Button 
       android:id="@+id/Button_playlist" 
       android:layout_marginLeft="2dp" 
       android:layout_width="wrap_content" 
       android:layout_centerVertical="true" 
       android:layout_height="wrap_content" 
       android:layout_alignParentLeft="true" 
       android:background="@drawable/tempadd" 
       /> 



</RelativeLayout> 

    </LinearLayout> 
    <LinearLayout android:id="@+id/lldata" 
     android:layout_weight="8" android:layout_width="fill_parent" 
     android:layout_height="0dp" android:background="#FFFFFF"> 


    </LinearLayout> 

    <LinearLayout android:id="@+id/llfooter" 
     android:layout_weight="1" android:layout_width="fill_parent" 
     android:orientation="horizontal" android:layout_height="0dp" 
     android:visibility="visible" android:background="@drawable/fbg" 
     android:weightSum="5.0" android:gravity="center" 
     android:layout_margin="0dp"> 

     <Button android:id="@+id/home" android:layout_height="wrap_content" 
      android:layout_width="wrap_content" android:layout_weight="1" 
      android:background="@drawable/home" android:textColor="#FFFFFF" 
      android:padding="10px"></Button> 

     <Button android:id="@+id/issue" android:layout_height="wrap_content" 
      android:layout_width="wrap_content" android:layout_weight="1" 
      android:background="@drawable/issue" android:textColor="#FFFFFF" 
      android:padding="10px"></Button> 

     <Button android:id="@+id/browse" android:layout_height="wrap_content" 
      android:layout_width="wrap_content" android:layout_weight="1" 
      android:background="@drawable/browse" android:textColor="#FFFFFF" 
      android:padding="10px"></Button> 

     <Button android:id="@+id/search" android:layout_height="wrap_content" 
      android:layout_width="wrap_content" android:layout_weight="1" 
      android:background="@drawable/search" android:textColor="#FFFFFF" 
      android:padding="10px"></Button> 

     <Button android:layout_height="wrap_content" android:id="@+id/favorite" 
      android:background="@drawable/favorite" android:layout_width="wrap_content" 
      android:layout_weight="1" 
      android:textColor="#FFFFFF" android:padding="10px"></Button> 
    </LinearLayout> 

</LinearLayout> 

を構築headerfooter.xmlの中間レイアウト

public class Home extends HeaderFooter 
{ 
     @Override 
     public void onCreate(Bundle savedInstanceState) 
     { 
      super.onCreate(savedInstanceState); 
      ViewGroup vg = (ViewGroup) findViewById(R.id.lldata); 
      ViewGroup.inflate(Home.this, R.layout.home, vg); 
     } 
} 
+1

このアプローチは非常にうまくいった、ありがとう! (唯一の問題は、フッターの画面と画面の間に非常に小さな隙間があることです) –

+0

@CalebGomer xmlを使用して更新しました。その問題は解決されます。noyなら教えてください。 – MKJParekh

+1

それを修正しました!あなたの助けをもう一度ありがとう。 –

2

あなたが必要としてだけでXMLを作成します。ここでは

は、私が何を意味するかのいくつかの写真があります。

他のスクリーンXMLのタグを使用して、これらのXMLを他の画面に追加します。

Sample is here.

あなたがそれぞれの活動に必要があるとして、あなたは、ボタンのクリックを処理することができます。

これが役に立ちます。

+0

私は前にアンドロイドで作業しました。私は働いているアプリを持っている、私はちょうど良いGUIをしたいと思います。私はそれらのサンプルを見て、私ができることを見ていきます。 ありがとう! –

+0

@Vinayこのリンクは壊れています。あなたのリンクを更新してください。 – BBdev

0

ヘッダー、フッター、本文を含むデザインのXmlレイアウト。メインアクティビティを毎回拡張する必要があります。レイアウトを拡張してボディを変更する必要があります。

0

あなたがそれらのレイアウトで好きな要素は、ディスプレイの下部にFrameLayoutを使用しているということです。彼らはおそらくこのような何かをやっている

:この方法を使用して

<LinearLayout android:orientation="vertical 
    .../> 
<head layout element> 
<FrameLayout element> 
<footer layout element> 
</LinearLayout> 
+0

LinearLayoutフッターの使用とフッターのFrameLayoutの使用に違いはありますか? –

+0

これはフレームレートのフッターではありません。それはフレームレイアウトであるコンテンツペインです。より具体的に私の答えを編集しました。 –

+0

私はあなたが何を意味するかを見ます。 "body"をLinearLayoutからFrameLayoutに変更しましたが、2つの違いはありませんでした。このような状況でFrameLayoutを使用することには実用上の利点はありますか? –

関連する問題