2014-02-04 4 views
0

У меня есть вид треков, который следует поместить рядом. Я дал вес 1 каждому. Но они не занимают одни и те же области. Первый занимает 1/2 от общего доступного пространства. Следующие два принимают оставшееся полупространство одинаково. Вот файл xml. Где я иду не так?Использование layout_weight для scrollviews

<TableLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:id="@+id/Ststus" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    tools:context=".MainActivity" > 

    <TableRow 
     android:id="@+id/tableRow1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" > 

     <Button 
      android:id="@+id/button1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Search for Bluetooth devices" 
      android:layout_weight="1"/> 

    </TableRow> 

    <TableRow 
     android:id="@+id/tableRow2" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" > 

     <ScrollView 
      android:id="@+id/ScrollView01" 
      android:layout_width="wrap_content" 
      android:layout_height="150dip" 
      android:layout_weight="1"> 

      <TextView 
       android:id="@+id/tv_mobile" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:gravity="center|center_vertical" 
       android:text="Mobiles" 
       android:textAppearance="?android:attr/textAppearanceLarge" /> 
     </ScrollView> 

     <ScrollView 
      android:id="@+id/ScrollView02" 
      android:layout_width="wrap_content" 
      android:layout_height="150dip" 
      android:layout_weight="1"> 

      <TextView 
       android:id="@+id/tv_laptops" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:gravity="center|center_vertical" 
       android:text="Computers" 
       android:textAppearance="?android:attr/textAppearanceLarge" /> 

     </ScrollView> 

     <ScrollView 
      android:id="@+id/ScrollView03" 
      android:layout_width="wrap_content" 
      android:layout_height="150dip" 
      android:layout_weight="1"> 

      <TextView 
       android:id="@+id/tv_headset" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:gravity="center|center_vertical" 
       android:text="Headsets" 
       android:textAppearance="?android:attr/textAppearanceLarge" /> 

     </ScrollView> 
    </TableRow> 

</TableLayout> 
+0

Лучше использовать LinearLayout вместо таблицы макета .. –

ответ

2

Изменение ScrollView-х android:layout_width="wrap_content" в android:layout_width="0dip"

Попробуйте один

<TableLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:id="@+id/Ststus" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:paddingBottom="@dimen/activity_vertical_margin" 
android:paddingLeft="@dimen/activity_horizontal_margin" 
android:paddingRight="@dimen/activity_horizontal_margin" 
android:paddingTop="@dimen/activity_vertical_margin" 
tools:context=".MainActivity" > 

<TableRow 
    android:id="@+id/tableRow1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" > 

    <Button 
     android:id="@+id/button1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Search for Bluetooth devices" 
     android:layout_weight="1"/> 

</TableRow> 

<TableRow 
    android:id="@+id/tableRow2" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" > 

    <ScrollView 
     android:id="@+id/ScrollView01" 
     android:layout_width="0dip" 
     android:layout_height="150dip" 
     android:layout_weight="1"> 

     <TextView 
      android:id="@+id/tv_mobile" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:gravity="center|center_vertical" 
      android:text="Mobiles" 
      android:textAppearance="?android:attr/textAppearanceLarge" /> 
    </ScrollView> 

    <ScrollView 
     android:id="@+id/ScrollView02" 
     android:layout_width="0dip" 
     android:layout_height="150dip" 
     android:layout_weight="1"> 

     <TextView 
      android:id="@+id/tv_laptops" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:gravity="center|center_vertical" 
      android:text="Computers" 
      android:textAppearance="?android:attr/textAppearanceLarge" /> 

    </ScrollView> 

    <ScrollView 
     android:id="@+id/ScrollView03" 
     android:layout_width="0dip" 
     android:layout_height="150dip" 
     android:layout_weight="1"> 

     <TextView 
      android:id="@+id/tv_headset" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:gravity="center|center_vertical" 
      android:text="Headsets" 
      android:textAppearance="?android:attr/textAppearanceLarge" /> 

    </ScrollView> 
</TableRow> 

0

Компоновка механизм вес только распределяет оставшийся пространства после первого прохода макета. В первом проходе макета прокрутки - wrap_content. Независимо от того, что осталось от таблицы, горизонтальное пространство будет распределено по отношению к весу.

Сделайте ширину 0px, чтобы каждый из них занимал 1/3 пробела.

0

Я думаю, что это будет хорошо для вас, чтобы использовать Linear-макет вместо таблицы-макета. Также Scroll-view Должен содержать родительскую группу View для всего ее дочернего элемента. Текстовый вид не является группой просмотра. Добавить линейную компоновку или относительную компоновку в качестве родителя для вашего текстового представления, находящегося внутри прокрутки. Также установите layout_width в «0dp» для scrollView, если вы назначаете ему вес. См. Дополнительную информацию http://developer.android.com/reference/android/widget/ScrollView.html. Ниже приведен пример кода: -

<ScrollView 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:layout_above="@id/bnext" 
android:layout_alignParentLeft="true" 
android:layout_alignParentTop="true" 
android:layout_alignStart="@id/bnext" > 

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" > 

    <TextView 
     android:id="@+id/textView1" 
     android:visibility="gone" /> 
</LinearLayout> 

0
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:id="@+id/Ststus" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:paddingBottom="@dimen/activity_vertical_margin" 
android:paddingLeft="@dimen/activity_horizontal_margin" 
android:paddingRight="@dimen/activity_horizontal_margin" 
android:paddingTop="@dimen/activity_vertical_margin" 
tools:context=".MainActivity" > 

<TableRow 
    android:id="@+id/tableRow1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" > 

    <Button 
     android:id="@+id/button1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Search for Bluetooth devices" 
     android:layout_weight="1"/> 

</TableRow> 
    <TableRow 
    android:id="@+id/tableRow2" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" > 

    <ScrollView 
     android:id="@+id/ScrollView01" 
     android:layout_width="0dp" 
     android:layout_height="150dip" 
     android:layout_weight="1"> 

     <TextView 
      android:id="@+id/tv_mobile" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:gravity="center|center_vertical" 
      android:text="Mobiles" 
      android:textAppearance="?android:attr/textAppearanceLarge" /> 
    </ScrollView> 

    <ScrollView 
     android:id="@+id/ScrollView02" 
     android:layout_width="0dp" 
     android:layout_height="150dip" 
     android:layout_weight="1"> 

     <TextView 
      android:id="@+id/tv_laptops" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:gravity="center|center_vertical" 
      android:text="Computers" 
      android:textAppearance="?android:attr/textAppearanceLarge" /> 

    </ScrollView> 

    <ScrollView 
     android:id="@+id/ScrollView03" 
     android:layout_width="0dp" 
     android:layout_height="150dip" 
     android:layout_weight="1"> 

     <TextView 
      android:id="@+id/tv_headset" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:gravity="center|center_vertical" 
      android:text="Headsets" 
      android:textAppearance="?android:attr/textAppearanceLarge" /> 

    </ScrollView> 
</TableRow> 

    </TableLayout> 
0
 <TableLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:id="@+id/Ststus" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:paddingBottom="@dimen/activity_vertical_margin" 
android:paddingLeft="@dimen/activity_horizontal_margin" 
android:paddingRight="@dimen/activity_horizontal_margin" 
android:paddingTop="@dimen/activity_vertical_margin" 
tools:context=".MainActivity" 
android:orientation="horizontal" > 
<TableRow 
    android:id="@+id/tableRow1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" > 
    <Button 
     android:id="@+id/button1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Search for Bluetooth devices" 
     android:layout_weight="1"/> 
</TableRow> 
<TableRow 
    android:id="@+id/tableRow2" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content"> 
    <ScrollView 
     android:id="@+id/ScrollView01" 
     android:layout_width="0dip" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" > 
     <TextView 
      android:id="@+id/tv_mobile" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:gravity="center|center_vertical" 
      android:text="Mobiles" 
      android:textAppearance="?android:attr/textAppearanceLarge" /> 
    </ScrollView> 
    <ScrollView 
     android:id="@+id/ScrollView02" 
     android:layout_width="0dip" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" > 
     <TextView 
      android:id="@+id/tv_laptops" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:gravity="center|center_vertical" 
      android:text="Computers" 
      android:textAppearance="?android:attr/textAppearanceLarge" /> 
    </ScrollView> 
    <ScrollView 
     android:id="@+id/ScrollView03" 
     android:layout_width="0dip" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" > 
     <TextView 
      android:id="@+id/tv_headset" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:gravity="center|center_vertical" 
      android:text="Headsets" 
      android:textAppearance="?android:attr/textAppearanceLarge" /> 
    </ScrollView> 
</TableRow> 

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