2012-01-23 2 views
2

Я показываю данные из БД в Activity. Я хочу таблицу и кнопки внизу. Для данных подумал, что TableLayout будет лучшим вариантом для него. Я добавил TableLayout в HorizontalView & в ScrollView, чтобы он прокручивал вертикально. & Горизонтально. Я добавляю все строки динамически - включая заголовок. Эта часть работает нормально.Android: невозможно установить TableLayout должным образом по желанию

Я хочу, чтобы содержимое было меньше ширины экрана, оно должно занимать всю ширину экрана. Напр. Если таблица хорошо подходит для портретного режима, а затем для ландшафтного режима, это будет пустое пространство слева. Я не хочу, чтобы это пространство было пустое, вместо этого занимало все столбцы. Если ширина строки больше ширины экрана, то никаких проблем вообще нет - появляется горизонтальная полоса прокрутки.

Я пробовал несколько вариантов, но ничего не помогло. Любая идея, какие настройки нужно сделать для utlize всего пространства (если вообще avbl) & показать это.

И да, еще одна проблема горизонтальной полосы прокрутки, она появляется только в последней строке. Я хочу, чтобы он появился ниже последней строки - так что граница последней строки видна. Мой XML:

<?xml version="1.0" encoding="utf-8"?> 

<LinearLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" android:orientation="vertical"> 

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" android:layout_height="wrap_content" 
    android:scrollbars="horizontal|vertical"> 

<HorizontalScrollView android:layout_width="wrap_content" android:layout_height="wrap_content" 
android:layout_marginTop="10dp" android:layout_marginBottom="10dp" > 

<TableLayout android:id="@+id/browseTable" android:layout_width="fill_parent" 
    android:layout_height="wrap_content" android:layout_marginBottom="20dp" 
    android:background="#FF0000" android:stretchColumns="1,2,3"> 

</TableLayout> 

</HorizontalScrollView> 
</ScrollView> 

<LinearLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" android:layout_height="wrap_content" 
android:orientation="horizontal" android:gravity="center" 
android:layout_marginTop="15dp"> 
    <Button android:id="@+id/browseAddBtn" android:text="Add" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:layout_marginRight="10dp" /> 
    <Button android:id="@+id/browseViewBtn" android:text="Edit" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:layout_marginRight="10dp" /> 
    <Button android:id="@+id/browseReturnBtn" android:text="Return" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" />   
    </LinearLayout> 

</LinearLayout> 

ВЫВОД: enter image description here

+0

захватить изображение этого и добавить его здесь, а затем рассказать, что именно вы хотите .. это поможет другим вам помочь. :) спасибо – AAnkit

+0

@AnkitA, добавили изображение, чтобы узнать, что у меня есть, и объяснить, что я хочу. Надеюсь, это поможет другим помочь мне. – Tvd

+0

попробуйте мой ответ не все, но да, ваша проблема решит это. второй, если вы хотите показать значение float. попробуйте показать до некоторой длины.как 4 места после десятичного числа. – AAnkit

ответ

4

Я нашел одну вещь, решая проблему, о TableLayout при использовании внутри HorizontalScrollView. android: stretchColumns не работает, когда мы используем макет таблицы внутри горизонтального вида прокрутки. Так что вы получаете пустое пространство, когда экран повернут, или столбцы имеют меньше данных ширины.

Надеюсь, вы это поняли. Я пытаюсь решить эту проблему, заменив Horizontal Scroll View на другой. Я отправлю ответ, если я получу решение. До свидания.

EDIT

Привет ТВД, наконец, я получил решение вашей проблемы. внесите изменения в файл макета XML.

В <HorizontalScrollView>

использование

 android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:fillViewport="true" 

Использование stretchColumns = "*" в TableLayout, если вы хотите, чтобы все столбцы растягиваться.

До свидания. :-)

+0

OH @Yugandhar Babu, ничего себе отличный. fillViewPort выполнил эту работу. Раньше задавал этот вопрос, но никакого правильного ответа это не получилось. Ваш отзыв помог мне. Я высоко ценю вашу телефонную линию. Большое спасибо. Вы не знаете, что это было в моем списке ToDo, так как я думаю, 20+ дней. Пробовал несколько вещей, но не получил желаемых результатов. Еще раз спасибо. – Tvd

+0

добро пожаловать. –

+0

@YugandharBabu Я попытался решить эту проблему, но не смог. отличная работа. –

0

Я сделал некоторые изменения. некоторые ваши проблемы будут решать с помощью кода ниже макета

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

<ScrollView 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_weight="1" 
    android:scrollbars="horizontal|vertical" > 

    <HorizontalScrollView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginBottom="10dp" 
     android:layout_marginTop="10dp" > 

     <TableLayout 
      android:id="@+id/browseTable" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:layout_marginBottom="20dp" 
      android:background="#FF0000" > 
     </TableLayout> 
    </HorizontalScrollView> 
</ScrollView> 

<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    style="@android:style/ButtonBar" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:gravity="center" 
    android:orientation="horizontal" > 

    <Button 
     android:id="@+id/browseAddBtn" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_marginRight="10dp" 
     android:layout_weight="1" 
     android:text="Add" /> 

    <Button 
     android:id="@+id/browseViewBtn" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_marginRight="10dp" 
     android:layout_weight="1" 
     android:text="Edit" /> 

    <Button 
     android:id="@+id/browseReturnBtn" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:text="Return" /> 
</LinearLayout> 

+0

Я добавил изменение layout_weight в ScrollView, но это мне не помогло. Это не привело к каким-либо изменениям в выходе. – Tvd

+0

Мне понравилась идея стиля «ButtonBar». Я хотел, чтобы это тоже было сделано только в нижней части, но не было способа для этого. Идея стиля была трюком. Спасибо за идею стиля ButtonBar. – Tvd

+0

попробуйте заполнить родительский элемент для горизонтального просмотра прокрутки и позвольте мне помочь вам. AAnkit

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