<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      TabLayout基本使用

      前言

      Tablayout繼承自HorizontalScrollView,可以用作頂部標簽效果、底部導航欄效果。一般多與ViewPager一起使用。

      想直接了解如何實現短下滑效果的請看:TabLayout的高級用法

      首先上幾個效果圖。

      圖:

      使用方法

      下面我們來看如何使用,

      第一步,先在gradle引入支持包

      implementation 'com.android.support:design:26.0.0'

      第二步,在布局文件中添加布局

      <android.support.design.widget.TabLayout
              android:id="@+id/tab_normal"
              android:layout_width="match_parent"
              android:layout_height="wrap_content"
              app:tabIndicatorHeight="2dp"
              app:tabMode="fixed"
              app:tabIndicatorColor="#0a0"
              app:tabTextColor="#bbb"
              app:tabSelectedTextColor="#0a0"
              />

      屬性解釋:

      tabIndicatorHeight:這里是設置標簽橫線的高度,如果不需要橫線,可以設置為0dp
      tabIndicatorColor:是用來設置標簽被選中時,顯示的顏色的。
      tabTextColor:標簽顯示的默認顏色
      tabSelectedTextColor:標簽被選中的時候的顏色
      tabMode:這個屬性有兩個取值,一個是fixed,不管tab標簽字多字少,平分當前tablayout寬度的空間大小。一般最多折兩行,還顯示不開的部分,用省略號代替。
                    另一個是scrollable,從左到右依次顯示標簽,顯示不開的,可以滾動顯示


      上代碼

      java代碼:
      import android.os.Bundle;
      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.design.widget.TabLayout;
      import java.util.ArrayList;
      import java.util.List;
      
      import butterknife.BindView;
      import butterknife.ButterKnife;
      
      public class MainActivity extends AppCompatActivity {
      
          @BindView(R.id.tab_normal)
          TabLayout tabNormal;
          @BindView(R.id.tab_icon)
          TabLayout tabIcon;
          @BindView(R.id.tab_more)
          TabLayout tabMore;
          @BindView(R.id.tab_customer)
          TabLayout tabCustomer;
          @BindView(R.id.vp_all)
          ViewPager vpAll;
      
          List<PageFragment> fgList;
      
          @Override
          protected void onCreate(Bundle savedInstanceState) {
              super.onCreate(savedInstanceState);
              setContentView(R.layout.activity_main);
              ButterKnife.bind(this);//此處是用的是butterKnife框架,等同于findviewbyid獲取各個控件。
              initViewPager();
              initTabNormal();
          }
      
          /**
           * 初始化ViewPager,方便后期與tabLayout關聯
           */
          private void initViewPager() {
              fgList = new ArrayList<>();
              for (int i = 0; i < 4; i++) {
                  fgList.add(PageFragment.newInstance("我是標題"+i,"我是內容欄目"+i));
              }
              vpAll.setAdapter(new ViewPagerAdapter(getSupportFragmentManager(), fgList) );
          }
      
          /**
           * 初始化頂部標簽
           */
          private void initTabNormal() {
              tabNormal.setupWithViewPager(vpAll);
          }
      
          /**
           * ViewPager的適配器。
           */
          class ViewPagerAdapter extends FragmentPagerAdapter{
      
              List<PageFragment> fragmentList;
              public ViewPagerAdapter(FragmentManager fm, List<PageFragment> fragmentList) {
                  super(fm);
                  this.fragmentList=fragmentList;
              }
      
              @Override
              public Fragment getItem(int position) {
                  return fragmentList.get(position);
              }
      
              @Override
              public int getCount() {
                  return fragmentList.size();
              }
      
              @Override
              public CharSequence getPageTitle(int position) {
                  return fragmentList.get(position).getTitle();
              }
          }
      }

      fragment代碼,fragment的布局文件,就一個ID為tv_content的textview,此處就不在貼代碼了。

      import android.os.Bundle;
      import android.support.v4.app.Fragment;
      import android.view.LayoutInflater;
      import android.view.View;
      import android.view.ViewGroup;
      import android.widget.TextView;
      
      import butterknife.BindView;
      import butterknife.ButterKnife;
      import butterknife.Unbinder;
      
      public class PageFragment extends Fragment {
          String title, content;
          @BindView(R.id.tv_content)
          TextView tvContent;
          Unbinder unbinder;
      
          public PageFragment() {
          }
      
          public static PageFragment newInstance(String title, String content) {
              PageFragment fragment = new PageFragment();
              fragment.title = title;
              fragment.content = content;
              return fragment;
          }
      
          @Override
          public void onCreate(Bundle savedInstanceState) {
              super.onCreate(savedInstanceState);
      
          }
      
          @Override
          public View onCreateView(LayoutInflater inflater, ViewGroup container,
                                   Bundle savedInstanceState) {
              View view = inflater.inflate(R.layout.fragment_page, container, false);
              unbinder = ButterKnife.bind(this, view);
              tvContent.setText(content);
              return view;
          }
      
          public String getTitle() {
              return title;
          }
      
          @Override
          public void onDestroyView() {
              super.onDestroyView();
              unbinder.unbind();
          }
      }

      通過tabLayout方法的setupWithViewPager()方法綁定ViewPager控件的。tab標簽獲取顯示文字,是通過FragmentPagerAdapter的getPageTitle()方法。所以需要對FragmentPagerAdapter的getPageTitle方法進行重寫。

      然而,原生控件有很多的呆笨性。比如很多的UI和場景需求都是要求文字下面的短線是一個小于文字的固定值。再比如我們說的作為底部導航欄,如果直接設置tab的icon,會出現icon變形等問題。

      所以我這里給一個終極的解決辦法。tab想做成什么樣子,就做成什么樣子。完全自定義。

      傳送門:TabLayout的高級用法,自定義TabLayout

       

       

       

      posted @ 2019-03-29 16:41  張旭小俠  閱讀(6853)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 天堂资源国产老熟女在线| 美欧日韩一区二区三区视频| 中国产无码一区二区三区| 青草热在线观看精品视频| www成人国产高清内射| 欧美丰满熟妇vaideos| 亚洲 校园 欧美 国产 另类| 苗栗市| 日本韩国一区二区精品| 奶头又大又白喷奶水av| 巩义市| 亚洲午夜精品毛片成人播放| 大地资源免费视频观看| 69人妻精品中文字幕| 午夜爽爽爽男女免费观看影院| 天天拍夜夜添久久精品大| 丁香五月亚洲综合深深爱| 亚洲精品久久婷婷丁香51| 精品午夜福利短视频一区| 在线视频精品中文无码| 亚洲性美女一区二区三区| 日韩精品中文字幕有码| 国产久免费热视频在线观看| 国产成人无码AV片在线观看不卡 | 日韩精品一区二区亚洲专区| 一区二区三区av天堂| 久久精品午夜视频| 男女啪祼交视频| 北岛玲亚洲一区二区三区| 永久免费无码av在线网站| 东北女人毛多水多牲交视频| 亚洲无人区一区二区三区| 小鲜肉自慰网站xnxx| 精品国产午夜福利在线观看| 色偷偷www.8888在线观看| 日韩AV高清在线看片| 精品亚洲国产成人性色av| 免费A级毛片中文字幕| 亚洲中文字幕无码久久2017| 久久精品蜜芽亚洲国产av| 久久久久久久波多野结衣高潮|