2013-03-06 4 views
2

Я создаю приложение для Android с двумя макетами. Все макеты имеют некоторые общие функции, такие как верхняя часть, и единственная разница в нижней части.Оптимизируйте код для Android с несколькими макетами

В настоящее время я создал два отдельных java-файла для двух макетов. И я просто скопировать код, который реализует аналогичные функциональные возможности, как кнопки и т.д.

enter image description here

Часть видно это ПИК является верхней частью макета, который является одинаковым в обеих макетах;

Есть ли способ, с помощью которого я могу оптимизировать функциональность, имея возможность многократного использования кода

+0

Разделить общие части, воспользуйтесь в вашем макете – Simon

+0

Я думал о создании отдельных классов для многоразового кода. – user2129794

+0

Можем ли мы что-то сделать для xml? – user2129794

ответ

3

На мой взгляд, это полезно, используя <include> в основной макет.

ШАГ:

вы должны создать один XML-файл для вашего общего макета.

topbar.xml

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width=”match_parent” 
    android:layout_height="wrap_content" 
    android:background="@color/titlebar_bg"> 

    <ImageView android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:src="@drawable/gafricalogo" /> 
</FrameLayout> 

как таким образом, теперь вы должны включить этот XML-файл, где вы должны требовать.

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

    <include layout="@layout/topbar"/> 

     ... 

</LinearLayout> 
+0

Я немного смущен этой строкой '' как это будет jnclude 'topbar.xml?' Или его 'topbar' в строке' ' вместо 'titlebar' – user2129794

+0

см. мой код обновления .. – Harshid

+0

если это полезно для вас, то принимайте – Harshid

Смежные вопросы