4
여기

는 설정에 대한 코드는하지만 두 가지 문제가있다는 tabhost입니다왜 탭 호스트가 안드로이드에 아이콘을 표시하지 않습니까?

  1. 이 너무 길면 텍스트가 나는 크기를 줄이고 한 줄에 강제 할 수 있습니다, 다음 행으로 갈 것인가? 모든 아이콘이 표시되지 않습니다
  2. , 심지어 내가

    public class MainActivity extends FragmentActivity { 
    
        @Override 
        protected void onCreate(Bundle savedInstanceState) { 
         super.onCreate(savedInstanceState); 
         setContentView(R.layout.activity_main); 
    
         FragmentTabHost tabHost = (FragmentTabHost)findViewById(android.R.id.tabhost); 
    
         tabHost.setup(this, getSupportFragmentManager(), R.id.realtabcontent); 
         tabHost.addTab(tabHost.newTabSpec("restaurant").setIndicator("Restaurant",getResources().getDrawable(R.drawable.food)),PlaceList.class, null); 
         tabHost.addTab(tabHost.newTabSpec("attraction").setIndicator("Attraction",getResources().getDrawable(R.drawable.view)), PlaceList.class, null); 
         tabHost.addTab(tabHost.newTabSpec("map").setIndicator("Map",getResources().getDrawable(R.drawable.map)),Map.class,null); 
         tabHost.addTab(tabHost.newTabSpec("planner").setIndicator("Planner",getResources().getDrawable(R.drawable.plan)),Planner.class, null); 
        } 
    } 
    
+0

편집 해 주셔서 감사합니다. – user782104

+0

매개 변수없이'tabHost.setup()'을 호출 해보십시오. – agamov

+0

예외 예외 : Context 및 FragmentManager를 사용하는 setup()을 호출해야합니다. – user782104

답변

5

TabSpec.setIndicator를 호출의 Drawable 당신이로 지금까지로 제한되어있는 TextView을 확인하는 등의 will only be visible if the label is null or empty. 전달 이미지 SRC가 정확한지 확신 한 줄로 이동하면 TabWidget.getTabCount을 반복 할 수 있으며 TabWidget.getChildTabViewAtView.findViewById을 호출하면 TextView이 제목을 설정하는 데 사용됩니다. 그 후 TextView.setSingleLine으로 전화하십시오.

final TabWidget tabWidget = tabHost.getTabWidget(); 
    for (int i = 0; i < tabWidget.getTabCount(); i++) { 
     final View tab = tabWidget.getChildTabViewAt(i); 
     final TextView title = (TextView) tab.findViewById(android.R.id.title); 
     title.setSingleLine(); 
    } 

또는, Widget.TabWidget의 스타일을 만들어 자신의 탭 레이아웃을 부풀려 수 있습니다. 부모 테마에서

<style name="Your.TabWidget" parent="@android:style/Widget.TabWidget"> 
    <item name="android:tabLayout">@layout/your_tab_layout</item> 
</style> 

그것을 적용 할 android:tabWidgetStyle에 대한 새로운 item을 만들 수 있습니다.

+0

감사합니다. 레이블과 아이콘을 유지하는 유일한 방법은 맞춤 탭 레이아웃을 만드는 것입니다. – user782104

+1

'TextView.setCompoundDrawablesWithIntrinsicBounds'를 호출 할 수 있습니다. – adneal

+1

@ user782104 답변에 만족한다면 받아 들여 주시겠습니까? – adneal

관련 문제