0

こんにちは、1 つのタブ バーの例を開発する必要があります。ここでは、各タブの幅を設定する必要があります。最初のタブの幅を大きく設定したいので、2 番目のタブの幅を小さくします。どうすれば開発できますか。助けてください。

これは私のコード部分です:

main.xml:

<?xml version="1.0" encoding="utf-8"?>
<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/tabhost"
android:background="#ffffffff"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <TabWidget
        android:id="@android:id/tabs"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" 
        android:tabStripEnabled="false"

          android:background="@drawable/tabicon" />

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

TabBar.java:

public class TabBarSimple extends TabActivity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.main);



    TabHost tabHost = getTabHost();
    TabHost.TabSpec spec;
    Intent intent;

    TabSpec dbspec = tabHost.newTabSpec("DashBoard"); 
    dbspec.setIndicator("Dashboard", getResources().getDrawable(R.drawable.dashboard));


    Intent dbIntent = new Intent(this, PhotosActivity.class);
    dbspec.setContent(dbIntent);
    tabHost.addTab(dbspec);

    TabSpec orderspec = tabHost.newTabSpec("Orders");
    orderspec.setIndicator("Orders", getResources().getDrawable(R.drawable.orders));

    Intent orderIntent = new Intent(this, SongsActivity.class);
    orderspec.setContent(orderIntent);
    tabHost.addTab(orderspec);

    }

}

ここで、各タブで幅を設定するにはどうすればよいですか。

4

4 に答える 4

0

Xamarin 開発者向け

AddView(_tabLayout, new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WrapContent, ViewGroup.LayoutParams.WrapContent));
于 2016-02-16T09:27:58.140 に答える
0

私によると、ドローアブルをインジケーターとして直接設定する代わりに、ImageViews を使用して個別の xml を作成し、それらを View にインフレートして、View をインジケーターとして設定できます。これにより、3 つの ImageView に異なる幅を設定できます。

TabBar.java

View view = LayoutInflater.from(context).inflate(R.layout.indicator_view_db,null);
dbspec.setIndicator(view);

indicator_view_db.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">

    <ImageView
        android:layout_width="40dp"
        android:layout_height="wrap_content"
        android:src="@drawable/dashboard"/>

</RelativeLayout>

このようにして、ダッシュボードと注文用に個別の xml を持つことができます。

お役に立てれば。

于 2012-10-10T07:01:04.913 に答える
0

android:layout_weightこのタイプの特定のタブの外観を与えるために使用します。

于 2012-10-10T05:46:34.537 に答える