标签: android-tablayout

将图标设置为选项卡布局时应用程序崩溃

我正在 android 中创建一个带有导航视图的 tabLayout。我想为选项卡布局的选项卡设置图标。当我使用 setIcon 函数时,应用程序抛出空指针异常并崩溃。请帮我。

public class navHomeActivity extends AppCompatActivity
    implements NavigationView.OnNavigationItemSelectedListener {

private TabLayout tabLayout;
private ViewPager viewPager;
int icons[] = {
        R.drawable.icon1,
        R.drawable.icon2,
        R.drawable.icon3};

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_nav_home);
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);

    viewPager = (ViewPager) findViewById(R.id.homeViewPager);
    setupViewPager(viewPager);
    setupTabIcons();

    tabLayout = (TabLayout) findViewById(R.id.tabHomeLayout);
    tabLayout.setupWithViewPager(viewPager);

    DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
    ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
            this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
    drawer.setDrawerListener(toggle);
    toggle.syncState();

    NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
    navigationView.setNavigationItemSelectedListener(this);
}


private void setupTabIcons() { …
Run Code Online (Sandbox Code Playgroud)

android nullpointerexception android-tablayout

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

单击 tabLayout 上的某些选项卡时应用程序崩溃

我正在开发一个 Android 应用程序,它有 4 个标签和 4 个片段。我已经在我的 Android 设备上运行了该应用程序。但是我遇到的问题是,当我单击前 2 个选项卡时,它工作正常,但是当我打开第 3 个和第 4 个选项卡时,应用程序立即崩溃!

一开始我以为是第3和第4个片段有bug,后来发现这不是第3个或第4个片段的bug。我用第3和第4个片段替换第1和第2个片段,用第3和第4个片段替换第1和第2个片段。同样的事情仍然发生了!

这是我的 main_activity.java。

public class Main_activity extends AppCompatActivity {

@Bind(R.id.main_activity)
View mView;
private int[] tabIcons = {
        R.drawable.friend_chat,
        R.drawable.call,
        R.drawable.tab_contact,
        R.drawable.profile
};
private TabLayout tabLayout;
private FragmentManager mFragmentManager;
private FragmentTransaction mFragmentTransaction;

private NonSwipeableViewPager viewPager;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);

    mFragmentManager = getSupportFragmentManager();
    mFragmentTransaction = mFragmentManager.beginTransaction();
    mFragmentTransaction.replace(R.id.viewpager, new ConversationsFragment()).commit();


    viewPager = (NonSwipeableViewPager) findViewById(R.id.viewpager);
    setupViewPager(viewPager);

    tabLayout = (TabLayout) …
Run Code Online (Sandbox Code Playgroud)

android android-viewpager android-tabs android-tablayout

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

onCreateView没有被称为tab片段

我目前有这个标签视图,我在教程中遵循了这个视图.一切正常,直到我注意到onCreateView没有在任何标签上调用.我在这里和那里寻找解决方案,但我仍然无法解决.这是我的代码:

activity_pref_main_container.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
android:id="@+id/main_layout"
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=".PrefActivityMain">

<android.support.v7.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:background="?attr/colorPrimary"
    android:elevation="6dp"
    android:minHeight="?attr/actionBarSize"
    android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
    app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/>

<android.support.design.widget.TabLayout
    android:id="@+id/tab_layout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_below="@+id/toolbar"
    android:background="?attr/colorPrimary"
    android:elevation="6dp"
    android:minHeight="?attr/actionBarSize"
    android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"/>

<android.support.v4.view.ViewPager
    android:id="@+id/pager"
    android:layout_width="match_parent"
    android:layout_height="fill_parent"
    android:layout_below="@id/tab_layout"/>

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

PrefMainActivity.class

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_pref_main_container);
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    toolbar.setTitle(R.string.preference_title);
    setSupportActionBar(toolbar);

    new PrefActivityListAsync(this,this,specialization).execute();
    new PrefActivityListAsync(this,this,position).execute();
    new PrefActivityListAsync(this,this,type).execute();

    TabLayout tabLayout = (TabLayout) findViewById(R.id.tab_layout);
    tabLayout.addTab(tabLayout.newTab().setText("Specialization"));
    tabLayout.addTab(tabLayout.newTab().setText("Position"));
    tabLayout.addTab(tabLayout.newTab().setText("Type"));
    tabLayout.setTabGravity(TabLayout.GRAVITY_FILL);

    final ViewPager viewPager = (ViewPager) …
Run Code Online (Sandbox Code Playgroud)

android android-fragments android-tablayout fragment-oncreateview

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

TabLayout颜色未选中的选项卡下划线

在此输入图像描述

在此图片中,在tablayout中,选定的tabbar下划线颜色为紫色和文本.

我搜索未选中的tabbar,但我找不到未选中的tabbar下划线.

我想在选择某个标签时更改颜色,更改未选中的标签栏下划线颜色.

如果你知道这件事,你能帮助我吗?

android android-viewpager android-tablayout

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

片段内的按钮

嗨,我正在创建一个使用 aButton内部的应用程序Fragment,因此当我单击该应用程序时Button,该Button 将生成一个 Toast 文本,我Button改为使用单击侦听器。但问题是我Button没有响应点击,当我点击它时没有响应,Button所以我对它感到压力。这是我的主要问题的代码:

test = (Button) findViewById(R.id.button2);
t_layout = (TabLayout) findViewById(R.id.tabs);
t_layout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {

        @Override
        public void onTabSelected(TabLayout.Tab tab) {
            Fragment fragment;
            String contain = tab.getText().toString();
        if(contain.equals("POWER")){
                fragment = new power_fragment();
                FragmentManager fm = getFragmentManager();
                FragmentTransaction ft = fm.beginTransaction();
                ft.replace(R.id.fragment2, fragment);
                ft.commit();

                test.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View view) {
                        Toast.makeText(getApplicationContext(),"Test on",Toast.LENGTH_SHORT).show();
                             }
                          }
                       }
                    }
               });
Run Code Online (Sandbox Code Playgroud)

我正在使用 Tabitems,因此当我单击“POWER”的 Tabitem 时,Fragment将更改为包含 …

android android-fragments android-fragmentactivity android-studio android-tablayout

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

带有 rtl tablayout 的 Android rtl viewpager

我知道这个问题可能看起来重复,但我找不到解决我的问题的好方法。我将tablayout与 viewpager 一起使用,fragmentPagerAdapter作为 viewpager 的适配器。如您所知,viewpager不支持 rtl 布局,因此我在 rtl 语言环境中遇到了问题。我希望标签从右侧开始(第一个标签贴在屏幕右侧)并且用户可以正确滑动。我怎样才能做到这一点?有什么帮助吗?

android android-viewpager android-tablayout

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

TabLayout.getTabAt()返回空对象

一切工作正常,此代码我从没有任何问题。但是以某种方式,当我尝试接收不在第一个位置的Tab时,现在得到一个空对象:

java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法'android.support.design.widget.TabLayout $ Tab android.support.design.widget.TabLayout $ Tab.setCustomView(android.view.View)'

在onCreateView中调用tabLayoutSetup。

 private void tabLayoutSetup(){
    // Get the ViewPager and set it's PagerAdapter so that it can display items
    Bugger.t(context,"tablayout");
    viewPager.setAdapter(pagerAdapter);
    // Give the TabLayout the ViewPager
    tabLayout.setupWithViewPager(viewPager);
     createTabs();

}

//this method is creating all tabs for account's tablayout
private void createTabs(){
    TabLayout.Tab ShareTab = tabLayout.getTabAt(0);
    TabLayout.Tab MarkTab = tabLayout.getTabAt(1);

    //***********************************************************************************************************
    //inflating template for first tab, Activities.
    View TabView = LayoutInflater.from(context).inflate(R.layout.account_tablayout_customtab, null); //template
    TextView titel = (TextView) TabView.findViewById(R.id.tab_titel);
    //populating first template for 'Activities'
    titel.setText(getResources().getString(R.string.SharesTab)); …
Run Code Online (Sandbox Code Playgroud)

android nullpointerexception android-layout android-fragments android-tablayout

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

如何在 TabLayout 中获取圆形标签指示器以填充圆形标签指示器背景?

我正在使用圆形背景和圆形标签指示器设计 TabLayout。在下面的图片链接中,可以看到我的白色标签周围有某种填充。如何摆脱填充并完全填充选项卡?

我附上了我的选项卡布局的代码。我的背景和 tabIndicator 绘图是在草图中设计的 - 尺寸与下面的“预期结果”完全相同。

<com.google.android.material.tabs.TabLayout
            android:id="@+id/newgroup_tabs"
            android:layout_width="0dp"
            android:layout_height="45dp"
            android:layout_marginTop="22dp"
            android:layout_marginLeft="20dp"
            android:layout_marginRight="20dp"
            android:background="@drawable/newgroup_tabbg"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@id/tvnewgroups_title"
            app:tabGravity="fill"
            app:tabInlineLabel="true"
            app:tabIndicator="@drawable/newgroup_tabindicatorwide"
            app:tabIndicatorColor="@color/white"
            app:tabIndicatorFullWidth="true"
            app:tabIndicatorGravity="center"
            app:tabIndicatorHeight="54dp"
            app:tabMode="fixed"
            app:tabTextColor="@color/black" />
Run Code Online (Sandbox Code Playgroud)

我的预期结果应该是这样的,https://ibb.co/XYZ2jkS

但我实际得到的是这个,https://ibb.co/Lz1C0Fy

如何让我的设计看起来像预期的图像?任何帮助将不胜感激,谢谢!

android android-layout android-tablayout material-components material-components-android

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

如何在Android中显示这种类型的TabLayout选项卡?

在布局中显示此类型的选项卡

在此处输入图片说明

我尝试了但没有得到正确的输出

我的代码在这里

private int[] imageList= {R.drawable.icon_category,R.drawable.icon_newest};

 tabLayout=(TabLayout)findViewById(R.id.tabs);
    tabLayout.addTab(tabLayout.newTab().setText(""));
    tabLayout.addTab(tabLayout.newTab().setText(""));


    for (int i = 0; i < imageList.length; i++) {
        tabLayout.getTabAt(i).setIcon(imageList[i]);
    }
Run Code Online (Sandbox Code Playgroud)

android android-tabs android-tablayout

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

如何使选项卡下的选择器滚动到选定的选项卡?

带滚动的tablayout

我想将选择器(粉红色线)滚动到下一个选项卡(on-fillup).我的片段正在滚动,但选择器无法滚动.有人可以帮忙吗?

MainActivity.java

//Adding the tabs using addTab() method
    tabLayout.addTab(tabLayout.newTab().setText("On Reserved"));
    tabLayout.addTab(tabLayout.newTab().setText("On Fill-up"));
    tabLayout.setTabGravity(TabLayout.GRAVITY_FILL);
Run Code Online (Sandbox Code Playgroud)

activity_main.java

<!-- our tablayout to display tabs  -->
<android.support.design.widget.TabLayout
    android:id="@+id/tabLayout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="?attr/colorPrimary"
    android:minHeight="?attr/actionBarSize"
    android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"/>

<!-- View pager to swipe views -->
<android.support.v4.view.ViewPager
    android:id="@+id/pager"
    android:layout_width="match_parent"
    android:layout_height="fill_parent"></android.support.v4.view.ViewPager>
Run Code Online (Sandbox Code Playgroud)

android android-studio android-tablayout

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

更改所选标签的颜色

我正在使用tabLayout我的应用中的标签。我想更改所选标签的背景颜色和文本颜色。我正在tabLayout通过这样做来更改整个背景的颜色

 android:background="@color/colorAccent"
Run Code Online (Sandbox Code Playgroud)

并更改textcolor和selectedtextcolor

app:tabTextColor="#000000"
app:tabSelectedTextColor="@color/colorAccent"
Run Code Online (Sandbox Code Playgroud)

但是我现在要做的就是在选中该特定选项卡时更改其背景颜色?怎么做 ?提前致谢 :)

android android-tablayout

-5
推荐指数
1
解决办法
2140
查看次数