Zoo*_*key 1 android android-tablayout
我有带有 ViewPager 的 TabLayout 并且我只有两个选项卡:
桌子
地图
我在应用程序中支持多种语言,例如:
英语,
德语
塞尔维亚
因此,我使用塞尔维亚语作为默认语言,因为大多数用户都是说塞尔维亚语的人,但是如果我更改为其他语言,除了表格和地图选项卡之外,所有内容都已正确本地化,因为它们总是使用塞尔维亚语。
可能是什么问题?
English:
<string name="tab_map">MAP</string>
<string name="username">Username</string>
German:
<string name="tab_table">TABELLE</string>
<string name="tab_map">MAPA</string>
Serbian:
<string name="tab_table">TABELA</string>
<string name="tab_map">MAPA</string>
Run Code Online (Sandbox Code Playgroud)
这是 TabLayout 的适配器:
public class MainViewPagerAdapter extends FragmentStatePagerAdapter {
private Context context;
private LiveFragment liveFragment;
private MapFragment mapFragment;
public MainViewPagerAdapter(FragmentManager fm, Context context, LiveFragment liveFragment, MapFragment mapFragment) {
super(fm);
this.context = context;
this.liveFragment = liveFragment;
this.mapFragment = mapFragment;
}
@Override
public Fragment getItem(int position) {
switch (position){
case 0: return liveFragment;
case 1: return mapFragment;
}
return null;
}
@Override
public CharSequence getPageTitle(int position) {
return getPagerTitles()[position];
}
@Override
public int getCount() {
return getPagerTitles().length;
}
@NonNull
private CharSequence[] getPagerTitles() {
return new CharSequence[]{context.getString(R.string.tab_table), context.getString(R.string.tab_map)};
}
Run Code Online (Sandbox Code Playgroud)
}
<android.support.design.widget.TabLayout
android:id="@+id/tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/toolbar"
app:tabMode="fixed"
app:tabTextColor="@color/colorPrimary"
app:tabTextAppearance="@style/TextAppearance.FontPath"
android:background="@color/white"
app:tabSelectedTextColor="@color/colorAccent"
app:tabIndicatorHeight="3dp"
android:elevation="0dp"
app:tabGravity="fill"/>
<android.support.v4.view.ViewPager
android:id="@+id/pager"
android:background="@color/white"
android:layout_height="match_parent"
android:layout_width="match_parent"
android:layout_weight="1"
android:layout_below="@+id/tabs"></android.support.v4.view.ViewPager>
Run Code Online (Sandbox Code Playgroud)
我也有同样的问题。2分钟前我能够修复它。当您创建 MainViewPagerAdapter 时,您是这样做的吗?
MainViewPagerAdapter mvpa =
new MainViewPagerAdapter(fm, getApplicationContext(), liveFragment, mapFragment);
Run Code Online (Sandbox Code Playgroud)
我认为应用程序上下文会查看您的默认语言(在我的情况下是电话语言)。只需尝试提供活动上下文,例如:new MainViewPagerAdapter(fm, this, ...
现在有人可以在评论中说“提供活动上下文的链接不好,最好使用应用程序上下文”,所以要小心:-)
| 归档时间: |
|
| 查看次数: |
458 次 |
| 最近记录: |