2013-02-20 5 views
0

В моем приложении я пытаюсь создать прокрутку, в которой есть 3 большие кнопки, которые заполняют весь экран. поэтому размер каждой кнопки составляет 1/3 экрана. Как я могу это сделать? Когда я использую весы, он не работает.weights in a scrollview

<ScrollView 
    android:id="@+id/scrollView1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_above="@+id/imageView2" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentRight="true" 
    android:layout_below="@+id/header_layout" > 

    <TableLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:gravity="center_horizontal" > 

     <TableRow 
      android:id="@+id/tableRow1" 
      android:layout_width="wrap_content" 
      android:layout_height="0dp" 
      android:layout_weight="1" 
      android:gravity="center_horizontal" > 

      <ImageView 
       android:id="@+id/imageView3" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:src="@drawable/main_btn_call" /> 
     </TableRow> 

     <TableRow 
      android:id="@+id/tableRow2" 
      android:layout_width="wrap_content" 
      android:layout_height="0dp" 
      android:layout_weight="1" 
      android:gravity="center_horizontal" > 

      <ImageView 
       android:id="@+id/imageView4" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:src="@drawable/main_btn_unlock" /> 

     </TableRow> 

     <TableRow 
      android:id="@+id/tableRow3" 
      android:layout_width="wrap_content" 
      android:layout_height="0dp" 
      android:layout_weight="1" 
      android:gravity="center_horizontal" > 

      <ImageView 
       android:id="@+id/imageView5" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:src="@drawable/main_btn_push" /> 

     </TableRow> 
    </TableLayout> 

</ScrollView> 
+0

Почему вниз точка ?! – roiberg

+0

Каков точный размер изображений, которые вы используете в качестве кнопок? – Harpreet

+0

Почему размер измеряется? они около 150dp. – roiberg

ответ

1

Вы используете TableLayout, который является LinearLayout с ориентацией, установленным на vertical - Это все хорошо, до сих пор, вы с помощью весов на атрибут layout_height.

Проблема, поскольку я вижу, что вы используете wrap_content как в своих ScrollView, так и в своем TableLayout. Значения веса позволяют расширить ваши представления, чтобы заполнить пространство, доступное для него, но ваш родитель обертывает содержимое до 0 + 0 + 0. Если вы измените высоту на match_parent для обоих родительских элементов, ваши значения веса будут иметь место для расширения.

+0

это не работает для меня .. – roiberg

+0

как он работает? – Graeme

+0

Это ничего не изменило. – roiberg

1

Я meneged сделать это с кодом:

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    final ImageView incallImage = (ImageView) findViewById(R.id.incall_image); 
    final ImageView unlockImage = (ImageView) findViewById(R.id.unlock_image); 
    final ImageView pushImage = (ImageView) findViewById(R.id.push_image); 
    final ScrollView scrollViewMain = (ScrollView) findViewById(R.id.scroll_view_main); 
    scrollViewMain.post(new Runnable() { 
     @Override 
     public void run() { 
      scrollMainHeight = scrollViewMain.getHeight(); 
      LinearLayout.LayoutParams layoutParams = new  
        LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, scrollMainHeight/3); 
      incallImage.setLayoutParams(layoutParams); 
      unlockImage.setLayoutParams(layoutParams); 
      pushImage.setLayoutParams(layoutParams); 
     } 
    }); 
} 

Если кто-нибудь найдет способ сделать это в XML это будет здорово !, Спасибо!

4

Единственное изменение добавить следующее свойство в вашем XML:

android:fillViewport="true" 

и колесика ширина вид и высота должна быть match_parent

android:layout_width="match_parent" 
android:layout_height="match_parent"