Как создать панель кнопок верхнего или нижнего колонтитула для моего приложения Android - PullRequest
12 голосов
/ 20 октября 2011

Многие популярные приложения, такие как Google Maps, Facebook, Foursquare и т. Д., Имеют заголовки и / или нижние колонтитулы в большинстве своих действий.Эти заголовки часто содержат очень полезные кнопки, и я хотел бы создать их для своего приложения.Кто-нибудь знает как они сделаны?Пока я ничего не смог найти.

Вот несколько фотографий того, что я имею в виду: http://www.flickr.com/photos/calebgomer/6262815430 http://www.flickr.com/photos/calebgomer/6262815458

Ответы [ 4 ]

14 голосов
/ 20 октября 2011

Используя этот способ, вы можете создать header-footer xml и использовать его для любого из ваших activity, также вам просто нужно написать код для элементов управления в верхнем колонтитуле один раз в HeaderFooter.java и может получить к нему доступ к вашему проекту.

Создайте свой 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.java

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

Теперь распространите вышеперечисленные действия на все остальные действия и увеличьте ваш конкретный вид в среднем макете 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);
        }
}
2 голосов
/ 20 октября 2011

Просто создайте XML, как вам нужно.

Добавьте эти XML на другие экраны, используя тег в других XML-файлах экрана.

Образец здесь.

Вы можете обрабатывать нажатие кнопки какВы нуждаетесь в каждом упражнении.

Надеюсь, это поможет.

0 голосов
/ 20 октября 2011

Я думаю, что элемент, который вам нравится в этих макетах, заключается в том, что они используют FrameLayout для нижней части экрана.

Они, вероятно, делают что-то вроде этого:

<LinearLayout android:orientation="vertical
  .../>
 <head layout element>
 <FrameLayout element>
 <footer layout element>
</LinearLayout>
0 голосов
/ 20 октября 2011

Дизайн XML-макета с верхним, нижним и нижним колонтитулами. Вы должны расширять основное действие каждый раз, вам нужно изменить тело, надувая нужный макет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...