温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

android TabHost如何解决下面白线

发布时间:2021-11-26 11:32:31 来源:亿速云 阅读:155 作者:柒染 栏目:移动开发

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

我之前做分页都是用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如何解决下面白线的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注亿速云行业资讯频道,感谢各位的阅读!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI