2013-12-17 2 views
0

У меня есть TabWidget определяется как:Одинаково Разнос все виды внутри TabWidget андроид

<TabWidget 
    android:layout_alignParentBottom="true" 
    android:id="@android:id/tabs" 
    android:paddingBottom="10dp" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:gravity="center|bottom" 
    android:weightSum="5" 
    android:background="@drawable/bottom_bar_without_bg" 
    /> 

Теперь я добавляю пользовательских ImageViews в нем:

Drawable d = getResources().getDrawable(R.drawable.tabbar_button_home); 
ImageView img1 = new ImageView(this); 
img1.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); 
img1.setImageDrawable(d); 

TabHost.TabSpec tSpecHome = tHost.newTabSpec("timeline"); 
tSpecHome.setIndicator(img1); 
tSpecHome.setContent(new MyTabContent(getBaseContext())); 
tHost.addTab(tSpecHome); 

Проблема с этим кодом является то, что все изображения расположены друг с другом по середине. abcdef

например

Я хочу, чтобы растянуть на всю ширину и иметь пространство между ними например a b c d e

ответ

2

обновить код следующим образом:

Drawable d = getResources().getDrawable(R.drawable.tabbar_button_home); 
ImageView img1 = new ImageView(this); 
img1.setLayoutParams(new LayoutParams(0, LayoutParams.WRAP_CONTENT, 1.0f)); // this line changed 
img1.setImageDrawable(d); 

Пояснение:

третьим параметром в конструкторе LayoutParams является weight. Каждый вид изображения теперь имеет вес 1.0f. Поэтому они будут распространяться по макету.

+0

Только одно дополнение, LayoutParams должно быть типа linearlayout. Спасибо :) –

+0

Правильно, я предположил, что это так. Спасибо, что указали это. –

0

Вы их WRAP_CONTENT шириной.

Вместо этого они должны быть установлены на ширине 0dp и каждый из них имеет раскладку серьезность 1.

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