2014-09-29 14 views
6

Tôi mới làm quen với khái niệm của huy hiệu. Trong ứng dụng của tôi, tôi muốn hiển thị các huy hiệu trên một tab. Cho rằng tôi sử dụng các tập tin android-viewbadger.jar Android ViewBadger nó đang làm việc tốt với 4 tab,Tabhost- đặt vị trí huy hiệu trong các tab Android

TabWidget tabs = (TabWidget) findViewById(android.R.id.tabs); 
    badge1 = new BadgeView(this, tabs, 1); 
    badge1.setText("155"); 
    badge1.setBadgePosition(BadgeView.POSITION_BOTTOM_RIGHT); 
    badge1.toggle(); 

enter image description here

khi tôi thêm một tab hơn ở đây nó sẽ giống như thế này

enter image description here

tôi đã sử dụng các đặc tính huy hiệu này

badge1.setPadding(left, top, right, bottom); 
    badge1.setTextSize(15); 
    badge1.setBadgeMargin(5,5); 
    badge1.setWidth(10); 
+0

http://kevinpelgrims.com/blog/2014/06/24/adding-a-badge-to -an-actionbar-tab – Shijil

Trả lời

1

Huy hiệu cài đặt trên TabWidget sẽ chỉ hiển thị huy hiệu trong khoảng trống có sẵn giữa điểm có thể vẽ và ranh giới của TabWidget, vì vậy việc thêm nhiều tab sẽ nén huy hiệu. Thay vì sử dụng setIndicator (String, drawable), hãy thử này:

ImageView iv = new ImageView(this); 
    iv.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, 
      LayoutParams.WRAP_CONTENT)); 
    iv.setImageResource(R.drawable.whoseinterested); 
    whosespec.setIndicator(iv); 
    Intent whoseIntent = new Intent(this, BlankActivity.class); 
    whosespec.setContent(whoseIntent); 

    tabHost.addTab(whosespec); 

    badge1 = new BadgeView(this, iv); 
    badge1.setText("155"); 
    badge1.setTextSize(15); 
    badge1.setBadgeBackgroundColor(Color.BLACK); 
    badge1.setTextColor(Color.WHITE); 
    badge1.toggle(); 

Ảnh chụp màn hình: screen

Bạn có thể thấy rõ trong ảnh chụp màn hình của bạn mà hình ảnh trong tab với huy hiệu được chuyển dịch theo hướng trung tâm. Nếu không có khoảng cách giữa hình ảnh và đường viền của thẻ, nó sẽ không được hiển thị đúng cách.

Nguồn: Tự kiểm tra.

+0

đây là câu trả lời hoàn hảo và làm việc như một say mê @berserk cảm ơn u rất nhiều –

+1

@AliAshiq vui vì nó đã giúp :) – berserk

1

Hi đặt huy hiệu trong con nhìn của tab trong ImageView

thử này

TabWidget tabsw = (TabWidget) rootView.findViewById(android.R.id.tabs); 
     ViewGroup viewgroup = (ViewGroup) tabsw.getChildAt(0); 
     viewgroup.getChildCount(); 

     for (int i = 0; i < viewgroup.getChildCount(); i++) { 
      if (viewgroup.getChildAt(i) instanceof ImageView) { 
       ImageView new_name = (ImageView) viewgroup.getChildAt(i); 
       badge7 = new BadgeView(getActivity(),new_name); 
       badge7.setText("9"); 
       badge7.setTextSize(9); 
       badge7.setBadgeMargin(0,0); 
       badge7.setBadgePosition(BadgeView.POSITION_TOP_RIGHT); 
       badge7.toggle(); 

      } 
     } 
+0

http://stackoverflow.com/questions/26402748/tabhost-android-viewbadger-badge phát hành có xem câu hỏi này @calinbros –