Можно ли добавить внутренний индикатор выполнения в TableLayout? - PullRequest
1 голос
/ 21 июля 2011

У меня есть представление прокрутки, которое содержит Tablelayout в качестве дочернего представления. Теперь, пока я получаю данные с сервера, я бы хотел отобразить индикатор выполнения на экране. Когда данные получены, индикатор выполнения должен быть заменен символами.

Я могу достичь этого частично. Я добавляю представление индикатора выполнения в 3-ю строку (строки 1 и 2 - заголовки), в которой видимость исчезла после получения данных и создания таблиц.

Проблема в том, что индикатор выполнения отображается в верхней части экрана. Чтобы соответствовать приложению, индикатор выполнения должен находиться в центре экрана, как он есть в ListViews.

Вот фрагмент кода для Progressbar

`<TableRow
android:layout_width="wrap_content" android:layout_height="wrap_content"     android:gravity="center_horizontal">
<ProgressBar
android:id="@+id/list_progressbar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"/>   
</TableRow>

1 Ответ

0 голосов
/ 16 апреля 2013

Имейте TableLayout внутри, который помещает все TableRows, как я надеюсь, что вы делаете, включая тот, что с ProgressBar, теперь вместо того, чтобы заменить.

Вы можете достичь этого другим способом, просто сделайте View.GONETableRow, содержащего ProgressBar и View.VISIBLE TableRow, который вы хотите показать.

Например;

<TableLayout>
 <TableRow android:id="@+id/trheader1" .../>
 <TableRow android:id="@+id/trheader2" .../>
 <!-- keeping the visibility of gone //-->
 <TableRow android:id="@+id/trRow3" android:visibility="gone" .../>
 <!-- tr containing progressBar //-->
 <TableRow android:id="@+id/trprogressBar" .../>
</TableLayout>

при получении данных

((TableRow) findViewById(R.id.trRow3)).setVisibilty(View.VISIBLE);
((TableRow) findViewById(R.id.trprogressBar)).setVisibilty(View.GONE);

Итак, я надеюсь, что это сработает для вас.Спасибо!

...