java - 当我选择它时,TabItem 在中心
问题描述
我有一个可滚动的 tablayout,但是当我选择一个 tabitem 时,可滚动停止,当我选择任何一个时,我需要在中心的 TabItem。谢谢你。
<com.google.android.material.tabs.TabLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:tabSelectedTextColor="@color/colorPrimary">
<com.google.android.material.tabs.TabItem
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Calle Mármol complejo 23" />
<com.google.android.material.tabs.TabItem
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Calle Mármol complejo 23" />
<FrameLayout
android:id="@+id/fragment_container"
android:layout_width="match_parent"
android:layout_height="match_parent" />
现在是java文件,只是为了去tabitem
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem menuItem) {
boolean fragmentTransaction = false;
Fragment fragment = null;
switch (menuItem.getItemId()) {
case R.id.nav_home:
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,
new HomeFragment()).commit();
titleToolbar = getResources().getString(R.string.Menu_Home);
fragmentTransaction = true;
getSupportActionBar().setTitle(titleToolbar);
break;
case R.id.nav_receipts:
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,
new ReceiptsFragment()).commit();
titleToolbar = getResources().getString(R.string.Menu_Receipts);
fragmentTransaction = true;
getSupportActionBar().setTitle(titleToolbar);
break;
解决方案
XML:
<androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<com.google.android.material.tabs.TabLayout
android:id="@+id/tabs"
style="@style/TabStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:elevation="5dp"
app:tabMode="scrollable" />
<androidx.viewpager.widget.ViewPager
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</androidx.appcompat.widget.LinearLayoutCompat>
风格
<style name="TabStyle" parent="Widget.Design.TabLayout">
<item name="android:background">@color/colorPrimary</item>
<item name="tabTextAppearance">@style/TabTextStyle</item>
<item name="tabIndicatorColor">@color/white</item>
<item name="tabTextColor">@color/red_light</item>
<item name="tabSelectedTextColor">@color/white</item>
</style>
<style name="TabTextStyle" parent="TextAppearance.AppCompat.Button">
<item name="android:textSize">@dimen/_10sdp</item>
</style>
爪哇
public class MainActivity extends AppCompatActivity {
private SampleAdapter adapter;
private TabLayout tabs;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ViewPager pager=(ViewPager)findViewById(R.id.pager);
adapter=new SampleAdapter(this, getSupportFragmentManager());
pager.setAdapter(adapter);
tabs=(TabLayout)findViewById(R.id.tabs);
tabs.setupWithViewPager(pager);
tabs.setTabMode(TabLayout.MODE_SCROLLABLE);
}
}
根据 tabItem 在适配器中分配您的片段
推荐阅读
- hiveql - 用 hive 中不连续行中的负 id 号替换 null
- c++ - 如何在 c++ 中将字符串拆分为左括号和右括号之间的字符串列表?
- java - 在 Android Studio 中运行 ExecutorService 时出现类执行错误
- python - 不确定正则表达式的含义
- c# - 如何修复“System.Data.dll 中发生‘System.Data.SqlClient.SqlException’类型的未处理异常”
- sparql - 使 RDF 文件引用其他 RDF 文件
- r - 仅在单变量时间序列上实现
- html - 图像的宽度正在变化,但高度没有变化
- java - 如何测试从不断变化的外部 API 中获取价值的 Rest API 端点
- c# - 寻找离源最近的物体。(解释问题)