Android仿微信主界面设计

2019-12-10 19:13:10刘景俊

然后建立三个fragment布局,放入到viewpager,下面举一个例子

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://www.easck.com/apk/res/android"
  android:layout_width="match_parent"
  android:layout_height="match_parent">

  <TextView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:text="聊天界面"
    android:gravity="center"
    android:textSize="20sp"
    />

</FrameLayout>

public class ChatFragment extends android.support.v4.app.Fragment {


  @Nullable
  @Override
  public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.chatfragment_layout,container,false);
    return view;
  }
}

接下来就是在MainActivity.java中代码配置了

 

/**
   * tabs栏的实例
   */
  private PagerSlidingTabStrip tabs;

  /**
   * 获取当前屏幕的密度
   */
  private DisplayMetrics dm;

  /**
   * 主界面的viewpager
   */
  private ViewPager pagers;
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    setOverflowShowingAlways();
    dm = getResources().getDisplayMetrics();
    pagers = (ViewPager) findViewById(R.id.pagers);
    tabs = (PagerSlidingTabStrip) findViewById(R.id.tabs);
    //这个类要继承FragmentActivity才可以有这个方法
    pagers.setAdapter(new ViewPagerAdapter(getSupportFragmentManager()));
    tabs.setViewPager(pagers);
    setTabValue();
  }

  /**
   * 对PagerSlidingTabStrip属性的修改
   */
  private void setTabValue(){
//    //设置tabs自动填充满整个屏幕,xml文件设置才有效果
//    tabs.setShouldExpand(true);
    //设置tabs的分割线透明
    tabs.setDividerColor(Color.TRANSPARENT);
    //设置tabs底部线的高度
    //TypedValue需要学习了解
    tabs.setUnderlineHeight((int) TypedValue.applyDimension(
        TypedValue.COMPLEX_UNIT_DIP, 1, dm));
    // 设置Tab Indicator的高度
    tabs.setIndicatorHeight((int) TypedValue.applyDimension(
        TypedValue.COMPLEX_UNIT_DIP, 4, dm));
    // 设置Tab标题文字的大小
    tabs.setTextSize((int) TypedValue.applyDimension(
        TypedValue.COMPLEX_UNIT_SP, 16, dm));
    // 设置Tab Indicator的颜色
    tabs.setIndicatorColor(Color.parseColor("#45c01a"));
    // 设置选中Tab文字的颜色 (这是我自定义的一个方法)
//    tabs.setSelectedTextColor(Color.parseColor("#45c01a"));
    // 取消点击Tab时的背景色
    tabs.setTabBackground(0);
  }