如何通过动态单击按钮来更改选项卡标题名称?

时间:2016-03-22 12:07:41

标签: android tabs fragment android-collapsingtoolbarlayout

我在我的应用中使用折叠工具栏和2个TabFragment(登录,SignUp)。

LogIn片段具有LogIn&的功能。忘记密码。

登录碎片

登录 ---> 选项卡名称 - 登录

电子邮件 - >的EditText

用户名 - >的EditText

登录按钮 - >按钮

已经拥有账户? - > TextView - >如果此文本视图单击,则忘记密码视图设置为可见&此登录视图必须是不可见的。

FORGOT PASSWORD ---> 标签标题名称需要更改为忘记密码

如何在点击按钮时更改此标签名称?

另一个疑问是我需要在左边和右边翻转这个标签。对。

布局代码: activity_tab.xml:

<div>
    <div #child></div>
</div>

loginfragment.xml:

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:id="@+id/drawer_layout"
    style="@style/Layout_mm"
    android:background="@color/background_2"
    android:fitsSystemWindows="true"
    tools:openDrawer="start">

    <android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        style="@style/Layout_mm"
        android:fitsSystemWindows="true">

        <android.support.design.widget.AppBarLayout
            style="@style/Layout_mw"
            android:fitsSystemWindows="true"
            android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">

            <RelativeLayout
                style="@style/Layout_mw"
                android:layout_marginTop="@dimen/ten_dp">

                <ImageView
                    android:id="@+id/header"
                    android:layout_width="match_parent"
                    android:layout_height="170dp"
                    android:background="@drawable/green_slide"
                    android:fitsSystemWindows="true"
                    android:scaleType="centerCrop"
                    app:layout_collapseMode="parallax" />

                <de.hdodenhof.circleimageview.CircleImageView
                    android:id="@+id/imgProfile"
                    android:layout_width="@dimen/eighty_dp"
                    android:layout_height="@dimen/eighty_dp"
                    android:layout_centerHorizontal="true"
                    android:layout_centerVertical="true"
                    android:layout_marginTop="@dimen/five_dp"
                    android:src="@drawable/login_logo" />
            </RelativeLayout>

            <android.support.design.widget.TabLayout
                android:id="@+id/tabs"
                android:layout_width="match_parent"
                android:layout_height="@dimen/forty_dp"
                android:layout_gravity="bottom"
                android:background="@color/colorPrimaryDark"
                app:tabIndicatorColor="@color/white" />

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

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

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

</android.support.v4.widget.DrawerLayout>

2 个答案:

答案 0 :(得分:4)

如果您使用 android.support.design.widget.TabLayout

获取所选标签位置并设置标题 -

 TabLayout.Tab tab = tabLayout.getTabAt(position);
 tab.setText("title");
希望它会有所帮助。

答案 1 :(得分:0)

由于您在项目中使用了TabLayout和ViewPager,因此可以通过TabLayout的帮助更改标签标题。

首先,您需要从TabLayout中检索正确的选项卡。为此,您需要TabLayout类的getTabAt()方法。此方法将为您在方法参数中指定的位置提供Tab。您将从该方法接收TabLayout.Tab。

现在,您只需要通过TabLayout.Tab对象的setText()方法更改此TabLayout.Tab对象的标题。

有关详情,请浏览以下链接:

http://developer.android.com/reference/android/support/design/widget/TabLayout.html

http://developer.android.com/reference/android/support/design/widget/TabLayout.Tab.html