android-studio - 如何更改选项卡名称?
问题描述
我目前正在开发一个移动应用程序,作为我课程的最终项目。我有这个屏幕,里面有 TabLayout。我的问题是它们具有相同的选项卡名称。我希望他们有不同的名字。我应该在哪里更改
适配器
package com.example.biowit;
import androidx.annotation.NonNull;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentActivity;
import androidx.fragment.app.FragmentManager;
import androidx.lifecycle.Lifecycle;
import androidx.viewpager2.adapter.FragmentStateAdapter;
public class LoginAdapter extends FragmentStateAdapter {
public LoginAdapter(@NonNull FragmentActivity fragmentActivity) {
super(fragmentActivity);
}
public LoginAdapter(@NonNull Fragment fragment) {
super(fragment);
}
public LoginAdapter(@NonNull FragmentManager fragmentManager, @NonNull Lifecycle lifecycle) {
super(fragmentManager, lifecycle);
}
@NonNull
@Override
public Fragment createFragment(int position) {
switch (position){
case 0:
LoginTabFragment loginTab = new LoginTabFragment();
return loginTab;
case 1:
SignupTabFragment signupTab = new SignupTabFragment();
return signupTab;
default:
return null;
}
}
@Override
public int getItemCount() { return 2; }
}
屏幕
package com.example.biowit;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.viewpager.widget.ViewPager;
import androidx.viewpager2.widget.ViewPager2;
import android.os.Bundle;
import com.google.android.material.tabs.TabItem;
import com.google.android.material.tabs.TabLayout;
import com.google.android.material.tabs.TabLayoutMediator;
public class
LoginScreen extends AppCompatActivity {
TabLayout tabLayout;
ViewPager2 viewPager;
float v=1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login_screen);
tabLayout = findViewById(R.id.tab_layout);
viewPager = findViewById(R.id.view_pager);
tabLayout.setTabGravity(TabLayout.GRAVITY_FILL);
LoginAdapter login_adapter = new LoginAdapter(this);
viewPager.setAdapter(login_adapter);
new TabLayoutMediator(tabLayout, viewPager,
new TabLayoutMediator.TabConfigurationStrategy() {
@Override
public void onConfigureTab(@NonNull TabLayout.Tab tab, int position) {
tab.setText("LOGIN");
}
}).attach();
tabLayout.setAlpha(v);
}
}
解决方案
在方法中添加所需的选项卡名称onConfigureTab
:
new TabLayoutMediator(tabLayout, viewPager,
new TabLayoutMediator.TabConfigurationStrategy() {
@Override
public void onConfigureTab(@NonNull TabLayout.Tab tab, int position) {
switch(position) {
case 0:
tab.setText("LOGIN");
break;
case 1:
tab.setText("SIGNUP");
break;
}
}
}).attach();
推荐阅读
- reactjs - 忽略错误 className 与 Gatsby 中的服务器和客户端不匹配
- sql-update - 设置 updateStrategy = FieldStrategy.IGNORED 无效
- function - 如何删除 Isabelle 中所有出现的子多重集?
- android - 以这种方式制作启动画面是否安全?
- python - 引发异常作为http响应
- html - 如何将 React 应用程序限制在网站上的一条路径上?
- mysql - Redis 和 MySQL 分页策略
- flutter - 如何在颤振中将不透明度添加到我的 Eclipse 容器中,如下所示?
- markdown - 有没有办法验证电报机器人 api 的降价语法?
- c# - 当 PNG 图像转换为 4 位 BMP 图像时,MSPaint 处理什么来消除背景中的对象?