标签: android-tablayout

如何在Android中的TabLayout选项卡中将图标与文本对齐

我正在一个包含两个选项卡的屏幕上工作。我在这里使用 AppCompatActivity。我在选项卡中设置了带有文本的图标,但我希望图像右对齐,并且它们之间应该有一些空间。代码如下:

1. Activity_ProfessionalTimeline.java

 public class Activity_ProfessionalTimeline extends AppCompatActivity implements OnClickListener {

    private Toolbar toolbatTop;
    private TabLayout tabLayout;
    private ViewPager viewPager;
    private TabsPagerAdapter mAdapter;
    private ActionBar actionBar;

    private int[] tabIcons = {
            R.drawable.social,
            R.drawable.professional
    };


    private ImageView _img_Profile;

    private TextView _txt_UserName;
    private TextView _txt_UserDestination;

    ArrayList<Model_LoginDetails> arr_LogInUserDetails = new ArrayList<Model_LoginDetails>();

    private ImageView _imt_userImage;
    private ListView _listView_SelectOpition;

    private boolean profilebtnstatus = false;
    private RelativeLayout _relativelayour_status;
    private ListView _listviewmoroption;
    private DrawerLayout drawer;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_professionalttimeline);

        // Top Toolbar …
Run Code Online (Sandbox Code Playgroud)

android android-tablayout

1
推荐指数
1
解决办法
7635
查看次数

Tablayout:用于选择/取消选择的图标的不透明度

这是whatsapp应用程序。请注意,当您选择一个选项卡时,“CONTACTS”一词是白色的,而其他词 CALLS 和 CHATS 的 alpha 值可能为 50%:

WhatsApp的

他们是如何做到这一点的?

我想做一些类似的事情,但用图标而不是文字,但原理应该是一样的。我已经用我的 TabLayout 完成了以下操作:

    TabLayout tabLayout = (TabLayout) findViewById(R.id.sliding_tabs);
    tabLayout.setTabGravity(tabLayout.GRAVITY_FILL);
    tabLayout.setupWithViewPager(viewPager);
    tabLayout.getTabAt(0).setIcon(R.drawable.icon1);
    tabLayout.getTabAt(1).setIcon(R.drawable.icon2);
    tabLayout.getTabAt(2).setIcon(R.drawable.icon3);
Run Code Online (Sandbox Code Playgroud)

这是我的 tabLayout 的 xml:

<android.support.design.widget.TabLayout
    android:id="@+id/sliding_tabs"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="#cccccc"
    app:tabPaddingStart="-1dp"
    app:tabPaddingEnd="-1dp" />
Run Code Online (Sandbox Code Playgroud)

我还阅读了此线程:如何在使用 TabLayout 时更改选项卡背景颜色?但这不完全是我想要的。

该线程表示,当您选择或取消选择它时,它会更改整个选项卡的颜色。这意味着您会将图标后面的整个背景更改为不同的颜色,而我只希望图标具有较低的不透明度,而不是背景和图标具有较低的不透明度。

Whatsapp 没有这样做 - 你只能看到“呼叫”这个词被设置为较低的不透明度,而不是这个词背后的背景。

android android-tablayout

1
推荐指数
1
解决办法
3615
查看次数

Android ViewPager 在 TabLayout 上显示视图

我正在尝试在 TabLayout 中设置两个选项卡。第一个选项卡是显示配置文件,第二个选项卡是显示活动。我有 TabLayout 和 ViewPager 设置。我还创建了将两个片段链接到 tablayout 所需的适配器。当我在我的手机上运行它时,两个屏幕和选项卡会显示,但它们不会显示在选项卡区域内 - 它们覆盖了实际的选项卡。我正在使用设计支持库 (v23.1.1)

我有一个带有片段区域的主活动文件,它根据用户想要做什么来改变视图。

我该怎么做才能让标签内容显示在标签内部而不是标签顶部?这是我的代码:

编辑:这是 profile_fragment.xml 文件(这是我希望选项卡出现的地方):

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
         xmlns:app="http://schemas.android.com/apk/res-auto"
         xmlns:tools="http://schemas.android.com/tools"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
         tools:context="Fragments.ProfileFragment">

<!-- TODO: Update blank fragment layout -->
<android.support.design.widget.TabLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id = "@+id/ProfileTabLayout"
    android:background="@color/colorPrimary"
    app:tabGravity="fill"
    app:tabMode="fixed"
    app:tabTextColor="@color/colorIcons"
    >
</android.support.design.widget.TabLayout>
<android.support.v4.view.ViewPager
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id = "@+id/ProfilePager"
    ></android.support.v4.view.ViewPager>
Run Code Online (Sandbox Code Playgroud)

user_profile_tab_layout.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                android:layout_width="match_parent"
                android:layout_height="wrap_content">
    <android.support.v7.widget.CardView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@color/colorPrimaryLight"
        android:layout_alignParentTop="true">
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical">
            <ImageView
                android:layout_width="100dp"
                android:layout_height="100dp"
                android:layout_gravity="center"
                android:src="@drawable/person_profile"
                android:layout_margin="5dp"/>
            <TextView
                style="@style/TextViewStyle"
                android:id = "@+id/userTitleTextView"
                android:textSize="24sp"
                android:textStyle="bold" …
Run Code Online (Sandbox Code Playgroud)

tabs android android-fragments android-tablayout

1
推荐指数
1
解决办法
3983
查看次数

设置选项卡选定的文本颜色不起作用

我想在选择时更改选项卡的颜色。在他们说的材料设计教程中,tabSelectedTextColor我们可以做到这一点。但它对我不起作用。我在onTabSelected下面的代码中强制这样做:

        public void onTabSelected(TabLayout.Tab tab) {

            TextView v = (TextView) tab.getCustomView().findViewById(R.id.text_tab_counter);
            v.setVisibility(View.INVISIBLE);
            TextView vv=(TextView) tab.getCustomView().findViewById(R.id.text_tab);
            vv.setTextColor(getResources().getColor(R.color.Notify));
            v.setText("");
            tab.getCustomView().invalidate();
            viewPager.setCurrentItem(tab.getPosition());

        }
Run Code Online (Sandbox Code Playgroud)

为什么这没有成功?

编辑 这是因为我有自定义选项卡布局?

    <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal" android:layout_width="match_parent"
    android:layout_height="match_parent"


    android:layout_gravity="center"
    >
<TextView

    android:textColor="@color/textColorPrimary"
    android:layout_marginRight="2dp"
    android:id="@+id/text_tab"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    />
    <TextView
        android:text="•"
        android:textColor="@color/Notify"
        android:textSize="@dimen/badget_size"
        android:id="@+id/text_tab_counter"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"

       />

</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

编辑:

ViewPageAdapter 代码:

    package ir.whc.news.adapter;

import android.content.Context;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.TextView;

import java.util.ArrayList;
import java.util.List;

import ir.whc.news.R;

/**
 * …
Run Code Online (Sandbox Code Playgroud)

android android-tablayout

1
推荐指数
1
解决办法
3111
查看次数

TabLayout 未在 Marshmallow 上显示选项卡标题

当我在棉花糖设备上测试我的应用程序时,我遇到了一个奇怪的问题,我的标签页标题没有显示。当我在所有其他设备上测试它时,标题显示得很好。在调试时,设备会遇到所有相同的点,包括我的适配器内的“getPageTitle”方法。我已经阅读了许多使用 android 的 TabLayout 和 ViewPager 的教程,只是为了确保我没有遗漏任何东西,而且据我所知,我没有做错任何事情。

这是我主要活动中的代码,

// setup viewPager
final ViewPager viewPager = (ViewPager) findViewById(R.id.viewPager);
setupViewPager(viewPager);

// setup tabLayout
TabLayout tabLayout = (TabLayout) findViewById(R.id.tabLayout);
tabLayout.setupWithViewPager(viewPager);
viewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabLayout));
Run Code Online (Sandbox Code Playgroud)

我的 setUpViewPager() 方法,

private void setupViewPager(ViewPager viewPager) {
    ViewPagerAdapter adapter = new ViewPagerAdapter(getFragmentManager());
    viewPager.setAdapter(adapter);
}
Run Code Online (Sandbox Code Playgroud)

和我的适配器类,它扩展了 FragmentPagerAdapter

private class ViewPagerAdapter extends FragmentPagerAdapter {
    private static final int NUM_FRAGMENTS = 2;

    public ViewPagerAdapter(FragmentManager fm) {
        super(fm);
    }

    @Override
    public Fragment getItem(int position) {
        switch (position) {
            case 0: return AllFeaturesFragment.newInstance();
            case 1: …
Run Code Online (Sandbox Code Playgroud)

android android-viewpager android-tablayout android-6.0-marshmallow

1
推荐指数
1
解决办法
3703
查看次数

Android - 如何在 TabLayout 中左对齐单个选项卡

我有一个TabLayout,我使用一起AppBarLayoutToolBar以及ViewPager为了有滚动的标签。目前,我有一个选项卡,但不是左对齐选项卡居中。

<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <android.support.design.widget.AppBarLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">

        <android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            android:background="?attr/colorPrimary"
            app:layout_scrollFlags="scroll|enterAlways"
            app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />

        <android.support.design.widget.TabLayout
            android:id="@+id/tablayout"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />

    </android.support.design.widget.AppBarLayout>

    <android.support.v4.view.ViewPager
        android:id="@+id/viewpager"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_behavior="@string/appbar_scrolling_view_behavior" />

</android.support.design.widget.CoordinatorLayout>
Run Code Online (Sandbox Code Playgroud)

xml android android-tablayout

1
推荐指数
1
解决办法
3905
查看次数

在 Tablayout 中制作可滚动或固定模式以获得动态数量的标签

我希望 tabMode可滚动,tabFilled with tabs (有单行标题)。由于 Tab 的数量及其标题在我的应用程序中是动态的。当我设置给定的属性时,我该如何处理它们。选项卡的标题来自两行。当标签数更大时。

    app:tabGravity="fill"
    app:tabMaxWidth="0dp"
    app:tabMode="fixed"
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

Tabs数量较少时,TabMode设置为可滚动。然后额外的空间如下所示。 在此处输入图片说明

我怎样才能让 Tablayout 在所有手机和一行文本中工作。只需删除第二个屏幕的空格并为第一个图像制作单行。

我知道我必须这样做,change it's tabMode and tabGravity for these two cases但我怎么知道何时更改它的 tabMode 和 tabGravity。可能我只有三个选项卡,但它们的标题很长,而且它们填满了整个空间。有时我们有 5 个标题很小的标签。它们很容易适应屏幕。

android android-tablayout

1
推荐指数
1
解决办法
5618
查看次数

Android - 带有自定义视图选项卡的 tablayout - 无法应用可绘制选择器

我正在尝试使用 gradle 中的 compile 'com.android.support:design:25.3.1' 在 tablayout 中设置自定义选项卡。

我想使用选择器,以便在单击选项卡时它会根据其状态进行更改。

所以我尝试了以下失败:

这是我的活动 xml:

<ViewPager
    android:id="@+id/pager"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="1"
    android:background="@color/white"/>

<android.support.design.widget.TabLayout
    android:id="@+id/tabLayout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    app:tabMode="fixed"
    app:tabGravity="fill"
    style="@style/MyCustomTabLayout"
    />
Run Code Online (Sandbox Code Playgroud)

这是我用于 tabLayout 的样式:

<style name="MyCustomTabLayout" parent="Widget.Design.TabLayout">
       <item name="tabIndicatorColor">@android:color/transparent</item>
   </style>
Run Code Online (Sandbox Code Playgroud)

隐藏下划线。

这是我的主页选项卡的选择器之一:

这是我对每个选项卡的自定义视图:

<ImageView
    android:id="@+id/iv_imgview"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    tools:src="@drawable/home_tab_selector"

    />

<TextView
    android:id="@+id/tv_tab_name"
    android:layout_gravity="center"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    tools:text="HOME"
    />
Run Code Online (Sandbox Code Playgroud)

这是创建 tablayout 的代码部分:

for (int i = 0; i < NUM_OF_TABS; i++)
           tabLayout.addTab(tabLayout.newTab());

       adapter = new LandingPagerAdapter(getApplicationContext(),getSupportFragmentManager(), tabLayout.getTabCount());

       //Adding adapter to pager
       viewPager.setAdapter(adapter);

       tabLayout.addOnTabSelectedListener(this);
       tabLayout.setupWithViewPager(viewPager);

       // Iterate over …
Run Code Online (Sandbox Code Playgroud)

android android-tablayout

1
推荐指数
1
解决办法
6431
查看次数

如何在选项卡上方添加行 android tablayout

需要帮忙

我已经搜索了我的要求,但没有找到发布我自己的问题。

我需要在选项卡上方而不是下方显示行,因为所有解决方案都是在选项卡文本下方添加行。

在此处输入图片说明

我应该使用自定义选项卡还是 android 支持这种情况而不进行自定义?

我查看的链接如下

https://www.google.com.pk/search?q=fabric+documentation&rlz=1C1CHBD_enPK741PK753&oq=fabric+documentation+&aqs=chrome..69i57.5669j0j7&sourceid=chrome&ie=UTF-8#safe=active&q=how+to+adding +line+above+tabs+android

没有发布代码,因为我想知道应该使用什么......你的建议会有所帮助......谢谢

tabs android android-tablayout

1
推荐指数
1
解决办法
1179
查看次数

使用多行标题在选项卡上设置片段

我正在处理我在选项卡上设置的两个片段。

在此处输入图片说明

我有两个问题:

  1. 我想在多行中设置片段的标题而不是“...”

这是添加片段并设置其标题的代码

ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager());
adapter.addFragment(new OneFragment(), "Current\nSubscription");
Run Code Online (Sandbox Code Playgroud)
  1. 我想从选项卡上的图标和文本周围删除额外的空间,使其更紧凑并节省一些空间。

android android-fragments android-tabs android-tablayout

1
推荐指数
1
解决办法
1440
查看次数