Поменяйте местами две кнопки в TableLayout - PullRequest
0 голосов
/ 22 июля 2010

Предположим, у меня есть следующий макет

<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/TableLayout">
    <TableRow android:id="@+id/TableRow01" >
        <Button android:text="1" android:id="@+id/button01"/>
        <Button android:text="2" android:id="@+id/button02"/>
        <Button android:text="3" android:id="@+id/button03"/>
        <Button android:text="4" android:id="@+id/button04"/>
    </TableRow>
    <TableRow android:id="@+id/TableRow01" >
        <Button android:text="5" android:id="@+id/button05"/>
        <Button android:text="6" android:id="@+id/button06"/>
        <Button android:text="7" android:id="@+id/button07"/>
        <Button android:text="8" android:id="@+id/button08"/>
    </TableRow>
</TableLayout>

Как я могу поменять позицию button01 на button02? И будет ли это работать также для обмена button01 с button05?

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

1 Ответ

1 голос
/ 22 июля 2010

Когда вы говорите «своп», что вы имеете в виду?Я полагаю, вы говорите о том, чтобы делать это динамически, иначе вы бы просто сделали это в макете.

Какова цель обмена?Просто заменить текст?Если это так, вы можете просто позвонить setText() на любую кнопку, которую хотите изменить.

РЕДАКТИРОВАТЬ (после уточнения вопроса с помощью комментариев): если вы хотите переместить их и анимировать это, то AbsoluteLayout БУДЕТ работатькроме того, что это устарело.Существуют и другие макеты, такие как использование RelativeLayout и указание абсолютных смещений в верхнем левом углу или даже GridView.Затем вы можете использовать TranslateAnimation для перемещения кнопок.

...