android.support.design.widget.TabLayout 不显示选项卡

标签 android android-toolbar

build.gradle


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

activity_main.xml

<RelativeLayout     
 xmlns:android="http://schemas.android.com/apk/res/android"
 xmlns:tools="http://schemas.android.com/tools"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 tools:context=".MainActivity">

  <android.support.design.widget.AppBarLayout
    android:id="@+id/abl_top"
    android:layout_width="match_parent"
    android:layout_height="?attr/actionBarSize">

    <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="?attr/colorPrimary" />

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

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

MainActivity.java


import android.os.Bundle;
import android.support.design.widget.TabLayout;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
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;

public class MainActivity extends AppCompatActivity {

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

        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        TabLayout tl = (TabLayout) findViewById(R.id.tab_layout);
        ViewPager viewPager = (ViewPager) findViewById(R.id.pager);

        if (toolbar != null) {
            setSupportActionBar(toolbar);
        }

        //tl.addTab(tl.newTab().setText("TAB 1"));
        //tl.addTab(tl.newTab().setText("TAB 2"));

        viewPager.setAdapter(new MyPagerAdapter(getSupportFragmentManager()));
        tl.setupWithViewPager(viewPager);
    }

    public class MyPagerAdapter extends FragmentPagerAdapter {
        public MyPagerAdapter(FragmentManager fm) { super(fm); }
        @Override
        public Fragment getItem(int position) {
            switch (position) {
                case 0: return new FragmentOne();
                case 1: return new FragmentOne();
                default: return null;
            }
        }
        @Override
        public int getCount() { return 2; }
        @Override
        public CharSequence getPageTitle(int position) {
            switch (position) {
                case 0: return "First Tab";
                case 1: return "Second Tab";
                default: return "not found";
            }
        }
    }
}

FragmentOne.java


import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ListView;

public class FragmentOne extends Fragment {
    private final String TAG = getClass().getSimpleName();
    private static final String mUrl = "http://goanuj.freeshell.org/txt2lrn/bollywood/box_office.json";

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        Log.d(TAG, "[onCreateView]");
        final View v = inflater.inflate(R.layout.fragment_one, container, false);
        // setup listview
        ListView lv = (ListView) v.findViewById(R.id.lv_items);

        // Defined Array values to show in ListView
        String[] values = new String[] { "apple", "banana", "cherry", "dog", "earth",
                "farther", "grape", "horseradish", "ice cream", "janitor", "kangaroo","lemon"
        };

        ArrayAdapter adapter = new ArrayAdapter(v.getContext(),
                android.R.layout.simple_list_item_1, android.R.id.text1, values);
        lv.setAdapter(adapter);

        return v;
    }

}

最佳答案

错误出现在activity_main.xml

android:layout_height="?attr/actionBarSize" <!-- WRONG -->

到目前为止我发现解决这个问题的最好方法是

android:layout_height="wrap_content" <!-- RIGHT -->

关于android.support.design.widget.TabLayout 不显示选项卡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30561812/

相关文章:

java - 我的应用程序在横向 View 中困惑

android - 工具栏不显示溢出菜单

当 drawerLayout 打开时,Android 菜单图标动画为箭头

Android 设计支持库 - CollapsingToolbarLayout EnterAlwaysCollapsed

java - 每次加载时将 JSON 文件缓存到内部存储

android - list 合并失败:uses-sdk:minSdkVersion 15不能小于库中声明的版本16

android - 如何在使用 MockWebServer 时使用 Dagger 2.0 支持多个端点

android - Action 按钮没有覆盖整个工具栏

Android 首选项重叠工具栏

java - 付款时的 child 值(value)计数器 Firebase Android