2010-01-28 14 views
6

Her Aktivitede ayrıca bir alt başlık ile ortak bir banner ve menü yerleştirmek istiyorum. Ben Android'de asp.net gibi ana ve çocuk sayfasını nasıl uygulayabileceğinizAndroid'de etkinlik gibi ana ve alt sayfalar nasıl uygulanır?

kimse bana yol Can ???

Herhangi bir yardım için teşekkür ederiz. Eğer Etkinlikler her olabilirdi

+0

Android'de bir "Usta Sayfası" düzeninizi nasıl kısa bir öğretici var - [burada] (http://jnastase.alner.net/archive/2011/ 01/08/ldquomaster-pagesrdquo-in-android.aspx). Commomn banner uygulamak için –

cevap

8

aynı XML menü her zaman şişiren bir onCreateOptionsMenu yöntemi vardır aynı temel sınıfa uzanır. Birden fazla mirasa sahip olamayacağınız gibi, örneğin, basit aktiviteler ve liste aktiviteleri yapmak istediğinizde bu zor olabilir.

Başka bir yol, daha karmaşık bir menü kurulumu yapıyorsanız, Etkinliklerinizin her birini arayabileceğiniz setupMenu(Menu) gibi bir yönteme sahip bir Util sınıfına sahip olmanızdır. senin Faaliyetlerin her XML UI düzeni açısından

, sen <include/> etiketini kullanarak ortak bir banner içerebilir.

+0

lütfen bana örnek verebilir misiniz ???? – UMAR

+0

Cevabımdaki bağlantıda bir örnek var. Android ana ekranı uygulaması, etiketini kullanarak workspace_screen.xml dosyasının tüm düzenini birden çok kez içerir. –

0

Ben aynı sorunu vardı ve ActivityGroup kullanarak çözdük. Menü öğelerinin kullanıcıyı başka bir etkinliğe taşıyacağını varsayalım, bu nedenle BACK düğmesiyle her aktivite kapanış uygulamasında aynı menü ile neredeyse imkansız hale gelebilir (bir süre sonra kullanıcının gördüğü tüm aktivitelere geri dönmesi gerekecektir).

Ben ingilizce hiç iyi öğreticiler bulamadı bu yüzden bir süre önce mayın yazdım (o oluyor biraz çok kısa ve sadece cila, ancak Google Tranlslated versiyonu anlaşılabilir olmalıdır) this

Ayrıca nasıl kontrol edebilirsiniz kontrol TabHost works

1

çözüm oldukça kolaydı. İhtiyacınız

"Aktivite" Class, sizin baz xml düzeni onCreate fonksiyon setContentView içinde uzanır ve ayrıca Örnek için baz Etkinlik Sınıf

yılında setContentView geçersiz kılmak gerekir:

1.Create "base_layout BaseActivity.java "

"kod aşağıda

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:orientation="vertical" 
     android:background="#000000" 
     android:padding="15dp" > 
    <LinearLayout android:orientation="horizontal" android:background="#000000" 
      android:layout_width="fill_parent" android:layout_height="wrap_content" 
      android:minHeight="50dp" android:paddingLeft="10dp"> 
      <ImageView android:layout_width="wrap_content" android:id="@+id/ImageView01" 
       android:adjustViewBounds="true" android:layout_height="wrap_content" 
       android:scaleType="fitCenter" android:maxHeight="50dp" /> 
    </LinearLayout> 
    <LinearLayout android:id="@+id/linBase" 
    android:layout_width="fill_parent" 
     android:layout_height="fill_parent" > 
    </LinearLayout> 
</LinearLayout>  

2.Create ile" .xml

ve

public class SomeActivity extends BaseActivity {  
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     super.setContentView(R.layout.some_layout); 
     //rest of code 
    } 
} 

şimdiye kadar fark bir ilerleme çubuğu isterken (requestWindowFeature (Window.FEATURE_INDETERMINATE_PROGRESS)) bu super.onCreate çağırmadan önce yapılması gerektiğini tek şey

. Bunun nedeni, bu işlevi çağırmadan önce hiçbir şeyin çizilemeyeceğidir.

Bu benim için harika çalıştı ve umarım bunu kendi kodlamanızda yararlı bulabilirsiniz.

0

ViewStub çözeltisi

activity_masterpage olup.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:orientation="vertical" >  
<ViewStub android:id="@+id/stub_content" 
       android:inflatedId="@+id/subTree" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" /> 

stub = (ViewStub) findViewById(R.id.stub_content); 
stub.setLayoutResource(R.layout.content_layout); 
stub.inflate(); 
İlgili konular