189 8069 5689

androidTabHost如何解决下面白线

android TabHost如何解决下面白线,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

成都创新互联公司专业为企业提供平远网站建设、平远做网站、平远网站设计、平远网站制作等企业网站建设、网页设计与制作、平远企业网站模板建站服务,10余年平远做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。

我之前做分页都是用GridView和ActivityGroup实现的.因为觉得TabHost不好用,还有就是自己水平差的原因吧.如果帮的话,重写view任何问题都可以解决,呵呵,下面请看实现过程,其实很简单.     
      代码片段:

?


01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

public class MyActivity extends TabActivity {

        private TabWidget tabWidget;

 

        /** Called when the activity is first created. */

        public void onCreate(Bundle savedInstanceState) {

                super.onCreate(savedInstanceState);

                setContentView(R.layout.main);

 

                Resources res = getResources(); // Resource object to get Drawables

                final TabHost tabHost = getTabHost(); // The activity TabHost

                TabHost.TabSpec spec; // Resusable TabSpec for each tab

                Intent intent; // Reusable Intent for each tab

 

                // Create an Intent to launch an Activity for the tab (to be reused)

                intent = new Intent().setClass(this, ArtistsActivity.class);

 

                // Initialize a TabSpec for each tab and add it to the TabHost

                spec = tabHost

                                .newTabSpec("artists")

                                .setIndicator("Artists",

                                                res.getDrawable(R.drawable.ic_tab_artists))

                                .setContent(intent);

                tabHost.addTab(spec);

 

                // Do the same for the other tabs

                intent = new Intent().setClass(this, AlbumsActivity.class);

                spec = tabHost

                                .newTabSpec("albums")

                                .setIndicator("Albums",

                                                res.getDrawable(R.drawable.ic_tab_artists))

                                .setContent(intent);

                tabHost.addTab(spec);

 

                intent = new Intent().setClass(this, SongsActivity.class);

                spec = tabHost

                                .newTabSpec("songs")

                                .setIndicator("Songs",

                                                res.getDrawable(R.drawable.ic_tab_artists))

                                .setContent(intent);

                tabHost.addTab(spec);

                tabHost.setCurrentTab(2);

                View v;

                tabWidget = tabHost.getTabWidget();

 

                for (int i = 0; i < tabWidget.getChildCount(); i++) {

                        // 获取tabview项

                        v = tabWidget.getChildAt(i);

                        // 设置tab背景颜色

                        v.setBackgroundResource(android.R.color.white);

                        // 获取textview控件,(默认为白色)

                        TextView textView = (TextView) v.findViewById(android.R.id.title);

                        textView.setTextColor(Color.BLACK);

                        // 默认选项要处理

                        if (tabHost.getCurrentTab() == i)

                                v.setBackgroundResource(R.drawable.renren_sdk_pay_repair_btn);

                }

                // tabchanged的监听

                tabHost.setOnTabChangedListener(new OnTabChangeListener() {

                        // tabId显示的是:newTabSpec里面的值

                        @Override

                        public void onTabChanged(String tabId) {

                                // 首先把所有的view背景初始化了.

                                for (int i = 0; i < tabHost.getTabWidget().getChildCount(); i++) {

                                        View v = tabHost.getTabWidget().getChildAt(i);

                                        // 设置tab背景颜色

                                        v.setBackgroundResource(android.R.color.white);

                                        // 选中的进行处理

                                        if (tabHost.getCurrentTab() == i) {

                                                v.setBackgroundResource(R.drawable.renren_sdk_pay_repair_btn);

                                        }

 

                                }

                        }

                });

 

        }

}



其实就是那几行加注释部分,相信你看一下就明白. 

解决Tab下面白线方法:
首先我们要获取Tab的分页view和textview控件,因为textview默认字体是白色.我们要进行处理.获取后进行相应处理(也就是该加背景的加背景,该改变字体颜色的改变字体颜色).***我们要对TabHost进行监听(OnTabChangedListener);也不是什么监听,。就是用他的点击执行事件.

看完上述内容,你们掌握android TabHost如何解决下面白线的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注创新互联行业资讯频道,感谢各位的阅读!


分享文章:androidTabHost如何解决下面白线
文章分享:http://jkwzsj.com/article/gjdijp.html

其他资讯