gpt4 book ai didi

android - 将图标添加到 SlidingTabLayout 而不是文本

转载 作者:IT王子 更新时间:2023-10-28 23:28:08 26 4
gpt4 key购买 nike

我正在我的 android 应用程序中实现一个 SlidingTabLayout。我的查询是我想在我的滑动选项卡中实现图标而不是导航文本。我在互联网上大量搜索任何此类教程或示例,但没有找到。我还在stackoverflow上搜索了一个之前的问题:Over Here - SlidingTabLayout with Icons .它提供了一些信息,但并没有真正帮助我。

要清楚。我要求我的标签只包含图标。没有文字。

由于我是整个设置的新手,如果您能发布正确的代码并附上解释,我将不胜感激。感谢您的时间和精力!

P.S. 我还听说过 Andreaz Stuetz 的 pagerslidingtabstrip,想知道它是否更适合我想要的东西...... p>

另外:这是我希望滑动标签的外观。看看这张图片的顶部。

编辑:现在 Lollipop (带 Material 设计)已经问世了。我看到很多应用程序在其工具栏(Android 5.0 操作栏)下方使用了一个新的“唯一图标”SLIDING-TAB-LAYOUT。他们有什么新方法来实现这个吗?再次感谢!

See the Sliding Tabs on the top?

最佳答案

关键是从 PagerAdapter 的 getPageTitle(position) 方法返回 SpannableString,其中包含 ImageSpan 中的图标:

private int[] imageResId = {
R.drawable.ic_tab_notifications,
R.drawable.ic_tab_weather,
R.drawable.ic_tab_calendar
};

@Override
public CharSequence getPageTitle(int position) {
Drawable image = getResources().getDrawable(imageResId[position]);
image.setBounds(0, 0, image.getIntrinsicWidth(), image.getIntrinsicHeight());
SpannableString sb = new SpannableString(" ");
ImageSpan imageSpan = new ImageSpan(image, ImageSpan.ALIGN_BOTTOM);
sb.setSpan(imageSpan, 0, 1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
return sb;
}

通常这已经足够了,但是由 SlidingTabLayout 创建的默认选项卡会调用 TextView#setAllCaps(true) 有效地禁用所有 ImageSpans,因此您必须使用自定义选项卡改为查看:

res/layout/custom_tab.xml

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="12sp"
android:textStyle="bold"
android:background="?android:selectableItemBackground"
android:padding="16dp"
/>

以及您在哪里设置/绑定(bind)到您的 ViewPager:

SlidingTabLayout slidingTabLayout = (SlidingTabLayout) view.findViewById(R.id.sliding_tabs);
slidingTabLayout.setCustomTabView(R.layout.custom_tab, 0);
slidingTabLayout.setViewPager(viewPager);

(确保在 setViewPager 之前调用 setCustomTabView)

关于android - 将图标添加到 SlidingTabLayout 而不是文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23472759/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com