Проблемы с выравниванием TextView прямо в Android

1

Я хотел бы спросить, как изменить макет, чтобы TextView с ID rowType устанавливался в абсолютное правое положение. В настоящее время я настроил гравитацию вправо, но текущая настройка выравнивается вправо от TextView выше (id: row). Поэтому, если строка TextView заканчивается на половине экрана, TextView rowType заканчивается на половину...

<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  android:background="@color/notepad_paper">
  <TableRow 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:fadingEdge="vertical" 
      android:fadeScrollbars="true" 
      android:gravity="left" 
      android:layout_gravity="left|center_horizontal">
      <ImageView 
        android:id="@+id/rowImgFav" 
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:padding="5dp"
        android:paddingLeft="20dp"
        android:paddingRight="40dp"
        android:scrollbars="vertical"
        android:fadingEdge="vertical"
        android:layout_alignParentRight="true"
      /> 
    <ImageView 
        android:id="@+id/rowImg" 
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:padding="5dp"
        android:scrollbars="vertical"
        android:fadingEdge="vertical"
        android:layout_alignParentRight="true"
      />

        <TableLayout 
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">
            <TableRow 
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                >
                <TextView
                android:id="@+id/row"
                android:layout_height="fill_parent"
                android:layout_width="fill_parent" 
                android:paddingLeft="10dp"
                android:paddingBottom="0dp"
                android:textSize="14dp"
                android:textStyle="bold"
                android:textColor="@color/notepad_text" /> 
            </TableRow>
            <TableRow>
                <TextView
                android:id="@+id/rowType"
                android:layout_height="fill_parent"
                android:layout_width="fill_parent"  
                android:padding="0dp"
                android:paddingTop="2dp"
                android:textSize="10dp"
                android:textStyle="normal"
                android:gravity="right"
                android:textColor="@color/notepad_text" />
            </TableRow>
        </TableLayout> 
  </TableRow>
</TableLayout>  
Теги:
alignment

1 ответ

6
Лучший ответ
<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  android:background="@color/notepad_paper">
  <TableRow 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:fadingEdge="vertical" 
      android:fadeScrollbars="true" 
      android:gravity="left" 
      android:layout_gravity="left|center_horizontal">
      <ImageView 
        android:id="@+id/rowImgFav" 
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:padding="5dp"
        android:paddingLeft="20dp"
        android:paddingRight="40dp"
        android:scrollbars="vertical"
        android:fadingEdge="vertical"
        android:layout_alignParentRight="true"
      /> 
    <ImageView 
        android:id="@+id/rowImg" 
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:padding="5dp"
        android:scrollbars="vertical"
        android:fadingEdge="vertical"
        android:layout_alignParentRight="true"
      />

        <TableLayout 
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" android:layout_weight="1">
            <TableRow 
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                >
                <TextView 
                android:layout_width="wrap_content" 
                android:layout_height="fill_parent" 
                android:textStyle="bold" 
                android:textSize="14dp" 
                android:paddingLeft="10dp" 
                android:textColor="@color/notepad_text" 
                android:paddingBottom="0dp" 
                android:id="@+id/row" 
                android:layout_weight="1.0"></TextView> 
            </TableRow>
            <TableRow>
                <TextView
                android:id="@+id/rowType"
                android:layout_height="fill_parent"
                android:layout_width="fill_parent"  
                android:padding="0dp"
                android:paddingTop="2dp"
                android:textSize="10dp"
                android:textStyle="normal"
                android:gravity="right"
                android:textColor="@color/notepad_text"
                android:layout_weight="1.0"/>
            </TableRow>
        </TableLayout> 
  </TableRow>
</TableLayout>  

Фиксированный! Я добавил android:layout_weight="1.0"!

  • 0
    Да, вес удобен. Кроме того, TableRows выравниваются друг с другом. Делая что-то подобное, я бы, вероятно, вместо этого выбрал бы RelativeLayout.
  • 0
    Да ... Я тоже думал о RelativeLayout ... Но у меня есть и другие ограничения ... TableLayout теперь просто идеален!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню