2014-12-23 4 views
-1

아이콘으로 PagerTabStrip을 구현하면 정상적으로 작동합니다. 하지만 내가 탭을 변경하면 현재 탭 아이콘이 선택된 이미지를 변경해야합니다. 내 어댑터 클래스 내 코드PagerTabStripwith 아이콘

내 당김 아이콘 선택기 코드

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
<item android:drawable="@drawable/ic_home_selected" android:state_selected="true" /> 
<item android:drawable="@drawable/ic_home_normal" android:state_selected="false" /> 
<item android:drawable="@drawable/ic_home_normal" /> 
</selector> 

MainActivity.java

viewPager = (ViewPager) findViewById(R.id.pager); 
    tabs = (PagerTabStrip) findViewById(R.id.tabs); 
    fragments = new ArrayList<>(); 
    fragments.add(R.drawable.menu_home_bg); 
    fragments.add(R.drawable.menu_likes_bg); 
    fragments.add(R.drawable.menu_matches_bg); 
    fragments.add(R.drawable.menu_home_bg); 
    pageAdapter = new TabPagerAdapter(getApplicationContext(), getSupportFragmentManager(), fragments); 
    viewPager.setAdapter(pageAdapter); 

추가 아이콘 아래

Drawable image; 
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { 
     image = context.getResources().getDrawable(tabIcon.get(position), context.getTheme()); 
    } else 
     image = context.getResources().getDrawable(tabIcon.get(position)); 
    if (image != null) 
     image.setBounds(0, 0, image.getIntrinsicWidth(), image.getIntrinsicHeight()); 
    SpannableStringBuilder sb = new SpannableStringBuilder(" "); 
    ImageSpan imageSpan = new ImageSpan(image, ImageSpan.ALIGN_BOTTOM); 
    sb.setSpan(imageSpan, 0, 1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 
    return sb; 

방법 캘리포니아 도와주세요 n 탭 변경시 선택기 아이콘 변경

+1

Google에서 쉽게 발견 할 수 있습니다. – Brovoker

답변

1

웹보기에서이 경로를 참조 할 수 없습니다. css 파일을 에셋 폴더에 저장하고 동적으로 참조해야합니다.

CSS를 assets 폴더에 넣고 HTML로 조작하고 상대 경로로 CSS를 참조하고 HTML을 loadDataWithBaseURL()에 의해 WebView에로드해야합니다. 방법 :

webView.loadDataWithBaseURL("file:///android_asset/", htmlString, "text/html", "utf-8", null); 
E.g. you have styles.css file, put it to assets folder, create HTML and load it: 

StringBuilder sb = new StringBuilder(); 
sb.append("<HTML><HEAD><LINK href=\"styles.css\" type=\"text/css\" rel=\"stylesheet\"/></HEAD><body>"); 
sb.append(tables.toString()); 
sb.append("</body></HTML>"); 
webView.loadDataWithBaseURL("file:///android_asset/", sb.toString(), "text/html","utf-8", null);