简体   繁体   中英

Cannot resolve symbol 'TabLayout' in sliding menu fragment

I'm a newbie in android programming and Im trying to make an ordering application. I have successfully created the sliding menu along with its fragments and the tab layout in 2 different projects. Now here's the dilemma, when I'm adding the code for the tab layout inside the fragment activity, an error occurs. It says that the tab layout import is not used or cannot resolve symbol 'TabLayout'.

Here's the layout file of my fragment:

slider_fragment2.xml

<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=".MainActivity">

<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="#E06908"
    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>

and here's the fragment java file: Slider_Fragment2.java

package com.example.aldoreymedrano.slider.fragment;

import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.Menu;
import android.view.MenuItem;
import android.support.design.widget.TabLayout;
import com.example.aldoreymedrano.slider.R;
import com.example.aldoreymedrano.slider.menu_tab_adapter.PagerAdapter;

public class Slider_Fragment2 extends AppCompatActivity


public Slider_Fragment2() {
    // Required empty public constructor
}


@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,    Bundle savedInstanceState) {
    View rootView = inflater.inflate(R.layout.slider_fragment2, container, false);

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

    TabLayout tabLayout = (TabLayout) findViewById(R.id.tab_layout);
    tabLayout.addTab(tabLayout.newTab().setText("Tab 1"));
    tabLayout.addTab(tabLayout.newTab().setText("Tab 2"));
    tabLayout.addTab(tabLayout.newTab().setText("Tab 3"));
    tabLayout.addTab(tabLayout.newTab().setText("Tab 4"));
    tabLayout.setTabGravity(TabLayout.GRAVITY_FILL);

    final ViewPager viewPager = (ViewPager) findViewById(R.id.pager);
    final PagerAdapter adapter = new PagerAdapter
            (getSupportFragmentManager(), tabLayout.getTabCount());
    viewPager.setAdapter(adapter);
    viewPager.addOnPageChangeListener(new   TabLayout.TabLayoutOnPageChangeListener(tabLayout));
    tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener()   {
        @Override
        public void onTabSelected(TabLayout.Tab tab) {
            viewPager.setCurrentItem(tab.getPosition());
        }

        @Override
        public void onTabUnselected(TabLayout.Tab tab) {

        }

        @Override
        public void onTabReselected(TabLayout.Tab tab) {

        }
    });


    return rootView;
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.menu_main, menu);
    return true;
 }

 @Override
 public boolean onOptionsItemSelected(MenuItem item) {
    int id = item.getItemId();
    if (id == R.id.action_settings) {
        return true;
    }

    return super.onOptionsItemSelected(item);
    }
}

I tried cleaning and rebuilding the project but it just doesnt work. I know there's something wrong, but I fail to notice it. Please help me, I'm stuck in this for hours already. Thank you in advance.

Here's the error messages

Error:(137, 28) error: incompatible types required: Fragment found: Slider_Fragment2

Error:(14, 37) error: package android.support.design.widget does not exist

Error:(38, 9) error: cannot find symbol class TabLayout

Error:(38, 32) error: cannot find symbol class TabLayout

Error:(43, 33) error: cannot find symbol variable TabLayout

Error:(49, 56) error: package TabLayout does not exist

Error:(50, 57) error: package TabLayout does not exist

Error:(31, 5) error: method does not override or implement a method from a supertype

Error:Execution failed for task ':app:compileDebugJavaWithJavac'.

Compilation failed; see the compiler error output for details. Information:BUILD FAILED

open your build.gradle file you will find depencecies section add design lib to your project

dependencies {
        compile fileTree(include: ['*.jar'], dir: 'libs')
        compile 'com.android.support:appcompat-v7:22.2.0'
        compile 'com.android.support:support-v4:22.2.0'
        compile 'com.android.support:design:22.2.0'

    }

Manually adding below two lines (taken from @CodingRat's answer here )

compile 'com.android.support:support-v4:22.2.0' compile 'com.android.support:design:22.2.0'

under dependencies in \\app\\build.gradle worked for me.

Everything else like cleaning, rebuilding etc didn't worked for me.

But don't know whether it's good idea to manually add anything there

Note: Your all the support libraries have to be the same version ie appcompat-v7 and support-v4 to same version eg 23.0.1; otherwise you can get error java.lang.NoClassDefFoundError: android.support.v7.internal.widget.TintManager after code build

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM