Как изменить Tabview во время выполнения.? - PullRequest
2 голосов
/ 05 декабря 2011

Я хочу изменить вид вкладки при нажатии на эту вкладку во время выполнения в Android.

Когда я щелкаю вкладку «Избранное», автоматически отображается изображение этой вкладки, например вкладка «Домой».

Пожалуйста, помогите мне в этом.

как это До

enter image description here

и после

enter image description here

Примеры, пожалуйста ...

Заранее спасибо ...

Ответы [ 3 ]

1 голос
/ 05 декабря 2011

Чтобы автоматически переключаться между изображениями значков вкладок при изменении состояния вкладки, используйте XML-файл, помещенный в папку ресурсов для рисования, в качестве ресурса индикатора вкладки.

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">   
 <!-- When selected, use grey -->   
 <item android:drawable="@drawable/home" android:state_selected="true" />   
 <!-- When not selected, use white-->    
<item android:drawable="@drawable/favorites" />
</selector>

Пожалуйста, отметьте Расположение вкладок

1 голос
/ 05 декабря 2011

См. Ссылку ниже:

http://developer.android.com/guide/practices/ui_guidelines/icon_design_tab.html

Для автоматического изменения изображений при выборе или отмене выбора вкладки вы можете использовать следующий код XML:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- selected state -->
    <item android:drawable="@drawable/ic_tab_friends_selected"
          android:state_selected="true"
          android:state_pressed="false" />
    <!-- unselected state (default) -->
    <item android:drawable="@drawable/ic_tab_friends_unselected" />
</selector>
0 голосов
/ 05 декабря 2011

У меня есть один пример, который не объяснен так же, как ваши требования, но используя это ИЛИ после изменения какого-либо условия ИЛИ добавив некоторое условие, вы получите свое решение.

Если мы хотим изменить цвет вкладки или изображения или текстcolor во время выполнения, тогда мы использовали этот код.

for(int i=0;i<host.getTabWidget().getChildCount();i++)
{
   host.getTabWidget().getChildAt(i).setBackgroundResource(R.drawable.tab_bg);
   TextView tv = (TextView) host.getTabWidget().getChildAt(i).findViewById(android.R.id.title); //Unselected Tabs
   tv.setTextColor(Color.parseColor("#ffffff"));
}
host.getTabWidget().getChildAt(host.getCurrentTab()).setBackgroundResource(R.drawable.tab_active_bg);// selected
TextView tv = (TextView) host.getCurrentTabView().findViewById(android.R.id.title); //for Selected Tab
tv.setTextColor(Color.parseColor("#000000"));

В этом коде host.getTabWidget (). getChildCount () возвращает общее количество виджетов ваших вкладок.Например, здесь, когда вы отображаете изображение, есть 4 вкладки.

Надеюсь, это поможет вам.Гуд удачи.:)

...