无法解析TabLayout

时间:2019-02-25 18:54:25

标签: android

我正在尝试在项目中使用TabLayout,但无法在项目中导入TabLayout类,请帮助我。 这是代码。

build.graddle

 dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
implementation 'com.android.support:design:28.0.0'
implementation 'com.android.support:support-v4:28.0.0'
implementation "com.google.android.material:material:1.0.0"

}

我还通过参考前面的问题添加了android.material:material:1.0.0“,但对我来说却没有用。

这是我的xml文件。

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="50dp"
    android:layout_alignParentTop="true">

    <android.support.design.widget.AppBarLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <android.support.design.widget.TabLayout
            android:id="@+id/tabs"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@drawable/white_grey_border_top">


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



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

</RelativeLayout>

实际上,我正在关注youtube上的一个教程,该教程对他有用,但对我不起作用。

这是我的java类。

package Home;

import android.content.Context;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TabLayout; //TabLayout showing red color.`enter code 
here`

import com.example.footag.R;

public class HomeActivity extends AppCompatActivity {

private static final String TAG = "HomeActivity";
private static final int ACTIVITY_NUM = 0;
private Context mContext = HomeActivity.this;

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

private  void setupViewPager(){
    SectionsPagerAdapter adapter = new SectionsPagerAdapter(getSupportFragmentManager());
    adapter.addFragment(new CameraFragment());
    adapter.addFragment(new HomeFragment());
    adapter.addFragment(new ProfileFragment());
    ViewPager viewPager = (ViewPager) findViewById(R.id.container);
    viewPager.setAdapter(adapter);

    TabLayout tabLayout = (TabLayout) findViewById(R.id.tabs);// TabLayout showing red color.
    tabLayout.setupWithViewPager(viewPager);

}

}

2 个答案:

答案 0 :(得分:1)

我建议您执行2个步骤。

步骤1。 迁移到新的AndroidX库,而不是使用AppCompat库。使用重构迁移到AndroidX 。它将用AndroidX类似物替换您的依赖项。

第2步。 使用com.google.android.material:material:1.0.0依赖关系来获取com.google.android.material.tabs.TabLayout类。在xml和java文件中使用此类。软件包名称ViewPager将是androidx.viewpager.widget

从AndroidX库导入XML的示例:

<RelativeLayout
  android:layout_width="match_parent"
  android:layout_height="50dp"
  android:layout_alignParentTop="true">

  <com.google.android.material.appbar.AppBarLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <com.google.android.material.tabs.TabLayout
        android:id="@+id/tabs"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@drawable/white_grey_border_top">

    </com.google.android.material.tabs.TabLayout>
  </com.google.android.material.appbar.AppBarLayout>
</RelativeLayout>

答案 1 :(得分:0)

否则您的导入可能不正确。试试这个

package Home;

import android.content.Context;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
//import android.widget.TabLayout;
import android.support.design.widget.TabLayout;