2011-01-13 15 views
1

alt textAndroid: Layout oben auf Registerkarten

Wie Sie sehen können, ist ein Linearlayout auf der Reiter. Ich möchte den LinearLayout-Boden an den oberen Rand der Registerkarte ausrichten.

Alternativ dazu kann auch das RelativeLayout an der Oberseite der Registerkarten ausgerichtet werden.

Hier ist der entsprechende Code für die Ansicht oben:

<?xml version="1.0" encoding="UTF-8"?> 
<RelativeLayout android:id="@+id/RelativeLayout01" android:layout_width="fill_parent" android:layout_height="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android"> 
    <LinearLayout android:layout_width="fill_parent" android:orientation="vertical" android:layout_height="wrap_content" android:id="@+id/LinearLayout02" android:layout_alignParentBottom="true"> 
     <FrameLayout android:id="@+id/FrameLayout02" android:layout_height="wrap_content" android:layout_width="fill_parent" android:paddingTop="20sp" android:paddingBottom="20sp"> 
      <ImageButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/record" android:layout_gravity="center_horizontal" android:id="@+id/RecordImageButton"></ImageButton> 
     </FrameLayout> 
     <SeekBar android:id="@+id/SeekBar01" android:layout_height="wrap_content" android:layout_width="fill_parent" android:paddingBottom="5sp" android:paddingLeft="10sp" android:paddingRight="10sp"></SeekBar> 
     <FrameLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:id="@+id/FrameLayout03"> 
      <LinearLayout android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/LinearLayout02" android:layout_gravity="center_horizontal"> 
       <ImageButton android:layout_width="wrap_content" android:id="@+id/ImageButton01" android:layout_height="wrap_content" android:src="@drawable/play_rev"></ImageButton> 
       <ImageButton android:layout_width="wrap_content" android:id="@+id/ImageButton02" android:layout_height="wrap_content" android:src="@drawable/play_stop"></ImageButton> 
       <ImageButton android:layout_width="wrap_content" android:id="@+id/ImageButton03" android:layout_height="wrap_content" android:src="@drawable/play"></ImageButton> 
      </LinearLayout> 
     </FrameLayout> 
    </LinearLayout> 
</RelativeLayout> 

Hier ist der Code für die Registerkarten:

<?xml version="1.0" encoding="utf-8"?> 
<TabHost xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@android:id/tabhost" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 

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

     <TabWidget 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:id="@android:id/tabs" 
     android:layout_alignParentBottom="true" /> 

     <FrameLayout 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:id="@android:id/tabcontent" /> 

    </RelativeLayout> 
</TabHost> 

MainActivity, die für jedes Register eine Aktivität setzt:

public void initTabs() 
{ 
    Resources res = getResources(); // Resource object to get Drawables 
    TabHost tabHost = getTabHost(); // The activity TabHost 
    TabHost.TabSpec spec; // Resusable TabSpec for each tab 
    Intent intent; // Reusable Intent for each tab 

    intent = new Intent().setClass(this, FirstActivity.class); 
    spec = tabHost.newTabSpec("tab1").setIndicator("Tab", 
         res.getDrawable(R.drawable.ic_tab_artists)) 
        .setContent(intent); 
    tabHost.addTab(spec); 

    intent = new Intent().setClass(this, SecondActivity.class); 
    spec = tabHost.newTabSpec("tab2").setIndicator("Tab 2", 
         res.getDrawable(R.drawable.ic_tab_artists)) 
        .setContent(intent); 
    tabHost.addTab(spec); 

    intent = new Intent().setClass(this, ThridActivity.class); 
    spec = tabHost.newTabSpec("tab3").setIndicator("Tab 3", 
         res.getDrawable(R.drawable.ic_tab_artists)) 
        .setContent(intent); 
    tabHost.addTab(spec); 

    tabHost.setCurrentTab(0); 
} 

Antwort

0
<?xml version="1.0" encoding="UTF-8"?> 
<RelativeLayout android:id="@+id/RelativeLayout01" 
    android:layout_width="fill_parent" android:layout_height="fill_parent" 
    xmlns:android="http://schemas.android.com/apk/res/android"> 
    <LinearLayout android:layout_width="fill_parent" 
     android:orientation="vertical" android:id="@+id/LinearLayout02" 
     android:layout_alignParentBottom="true" android:weightSum="1" 
     android:layout_height="wrap_content"> 
     <LinearLayout android:id="@+id/LinearLayout03" 
      android:layout_width="fill_parent" android:layout_height="fill_parent" 
      android:layout_weight=".25" android:weightSum="1" 
      android:orientation="vertical"> 
      <FrameLayout android:id="@+id/FrameLayout02" 
       android:layout_height="wrap_content" android:layout_width="fill_parent" 
       android:paddingTop="20sp" android:paddingBottom="20sp" 
       android:layout_weight=".5"> 
       <ImageButton android:layout_width="wrap_content" 
        android:layout_height="wrap_content" android:src="@drawable/record" 
        android:layout_gravity="center_horizontal" android:id="@+id/RecordImageButton"></ImageButton> 
      </FrameLayout> 
      <SeekBar android:id="@+id/SeekBar01" android:layout_height="wrap_content" 
       android:layout_width="fill_parent" android:paddingBottom="5sp" 
       android:paddingLeft="10sp" android:paddingRight="10sp"></SeekBar> 
      <FrameLayout android:layout_width="fill_parent" 
       android:layout_height="wrap_content" android:id="@+id/FrameLayout03"> 
       <LinearLayout android:layout_height="wrap_content" 
        android:layout_width="wrap_content" android:id="@+id/LinearLayout02" 
        android:layout_gravity="center_horizontal"> 
        <ImageButton android:layout_width="wrap_content" 
         android:id="@+id/ImageButton01" android:layout_height="wrap_content" 
         android:src="@drawable/play_rev"></ImageButton> 
        <ImageButton android:layout_width="wrap_content" 
         android:id="@+id/ImageButton02" android:layout_height="wrap_content" 
         android:src="@drawable/play_stop"></ImageButton> 
        <ImageButton android:layout_width="wrap_content" 
         android:id="@+id/ImageButton03" android:layout_height="wrap_content" 
         android:src="@drawable/play"></ImageButton> 
       </LinearLayout> 
      </FrameLayout> 
     </LinearLayout> 
     <LinearLayout android:id="@+id/TabLayout" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight=".75"> 
     </LinearLayout> 
    </LinearLayout> 
</RelativeLayout> 

Sie können hinzufügen Ihre TabHost Sachen in das TabLayout (letztes LinearLayout). Hoffe das wird dein Problem lösen.

+0

Nein, es sollte zwei verschiedene Ansichten sein. – Awesome

+0

ok .. wenn das der Fall ist, können Sie einfach Ihre TabHost Dinge Ansicht auf die TabLayout (LinearLayout) aus dem Code 'addView '. – Sen

0

Sie können params und Regeln erstellen:

RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT) 

params.addRule(RelativeLayout.Top, anotherView.getId()); 

Diese Linie bedeutet, dass eine Ansicht Unterseite eines anderen Top-sein ... Diese Arbeiten können aber adviced ist, dass in XML zu tun.

Verwandte Themen