получить полную ширину при использовании пользовательских вкладок вместе с другими видами по горизонтали - PullRequest
0 голосов
/ 26 октября 2011

Я пытаюсь создать пользовательский интерфейс в Android этого типа

Labels: tab1 | tab2 | tab3
==========v===============
Customized        ListView
      ...

Но я получаю следующий пользовательский интерфейс

Labels: tab1 | tab2 | tab3
==========v===============
       Customized ListView
              ...

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

Я хочу показать ListView, покрывающий всю ширину экрана. Как мне этого добиться.Пожалуйста, помогите

Вот пример кода, который я использую

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/passesBar" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:paddingLeft="10dip"
android:paddingTop="10dip" android:paddingRight="10dip"
android:paddingBottom="5dip">

<TextView android:id="@+id/passesText" android:text="@string/passes_text"
 android:layout_width="wrap_content" android:layout_height="wrap_content"
 android:textSize = "12dip">
</TextView>


<TabHost android:id="@+id/passesTabHost"
android:layout_toRightOf="@id/passesText"
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content">

<LinearLayout android:orientation="vertical"
android:layout_width="fill_parent" android:layout_height="wrap_content">

<TabWidget android:id="@android:id/tabs"
android:layout_width="fill_parent" android:layout_height="wrap_content">
    </TabWidget>
<FrameLayout android:layout_width="match_parent"
android:layout_height="wrap_content" android:id="@android:id/tabcontent">
    <ListView android:id="@+id/passesList" android:layout_below="@+id/passesBar"
    android:layout_width="fill_parent" android:layout_height="wrap_content"
    android:footerDividersEnabled="true"
    android:listSelector="@drawable/passes_list_item_custom_selector">
    </ListView>         

</FrameLayout>
</LinearLayout>
</TabHost>

Спасибо, Nikhil

1 Ответ

0 голосов
/ 26 октября 2011

В вашем макете XML попробуйте это:

  1. Оберните ваш пользовательский тег в LinearLayout, если он еще не является LinearLayout. Установите android:layout_width=0, android:layout_height=wrap_content, android:weight=1 и android:gravity=left для тега LinearLayout.
  2. Для вашего тега ListView также оберните его в LinearLayout, если он еще не установлен, и установите android:layout_width=0, android:layout_height=wrap_content и android:weight=3 в тег LinearLayout.

Это, по сути, сделает ширину ListView пропорционально в 3 раза больше, чем то, что когда-либо было настроено. Кроме того, установка гравитации приведет к тому, что пользовательский вид будет цепляться за левую часть экрана.

Вот маленький драгоценный камень из документации Android, который говорит вам об этом:

Совет. Чтобы создать макет пропорционального размера на экране, создайте объект группы представлений контейнеров с атрибутами layout_width и layout_height, установленными в fill_parent; присвойте детям высоту или ширину 0 (ноль); затем присвойте каждому ребенку значения относительного веса в зависимости от того, какой пропорции экрана должен быть у каждого.

Я получил от здесь .

...