通过fragment模拟一个微信主页面

通过fragment模拟一个微信主页面

  • 在布局中声明UI
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
    android:orientation="vertical"
    tools:context=".MainActivity">

    <LinearLayout
        android:id="@+id/ll"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:orientation="horizontal" />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">

        <Button
            android:id="@+id/btn1"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="微信" />

        <Button
            android:id="@+id/btn2"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="通讯录" />

        <Button
            android:id="@+id/btn3"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="发现" />

        <Button
            android:id="@+id/btn4"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="我" />
    </LinearLayout>
</LinearLayout>
  • 声明四个fragment,每个fragmen分别代表一个页面
  • 根据UI写对应逻辑
public class MainActivity extends AppCompatActivity implements View.OnClickListener {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        LinearLayout ll = findViewById(R.id.ll);
        Button btn1 = findViewById(R.id.btn1);
        Button btn2 = findViewById(R.id.btn2);
        Button btn3 = findViewById(R.id.btn3);
        Button btn4 = findViewById(R.id.btn4);
        btn1.setOnClickListener(this);
        btn2.setOnClickListener(this);
        btn3.setOnClickListener(this);
        btn4.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        FragmentManager fm = getSupportFragmentManager();
        FragmentTransaction ft = fm.beginTransaction();
        switch (v.getId()) {
            case R.id.btn1:
                ft.replace(R.id.ll, new MessageFragment());
                break;
            case R.id.btn2:
                ft.replace(R.id.ll, new ContactFragment());
                break;
            case R.id.btn3:
                ft.replace(R.id.ll, new DiscoverFragment());
                break;
            case R.id.btn4:
                ft.replace(R.id.ll, new MimeFragment());
                break;
        }
        ft.commit();
    }
}

原文地址:https://www.cnblogs.com/nangongyibin/p/10257340.html

时间: 2024-10-09 02:41:52

通过fragment模拟一个微信主页面的相关文章

TouTiao开源项目 分析笔记9 实现一个问答主页面

1.根据API返回创建几个基础的Bean 1.1.WendaArticleDataBean类 API返回的数据如下: /** * cell_type : 36 * extra : {"wenda_video":[],"show_answer":false,"video_large_card":false,"label_style":{"color_type":0,"name":"

[模拟Android微信]主界面

首先看很像模仿: 走出来: 实现过程: 依赖类库:actionbarsherlock 用actionbarsherlock来实现顶部的搜索的效果. tab用的是Viewpaper实现的. 详细细节: 1.聊天.发现和通讯录地下的绿色的矩形和地下的灰色细线是重合的,怎么实现这样的效果呢.仅仅要使用 RelativeLayout.然后使得两个ImageView的 android:layout_alignBottom属性都指向同一个View. 2."聊天"右边的红底白字1 要实现这个效果,能

Android利用ViewPager仿微信主界面-android学习之旅(78)

首先是介绍ViewPager这个控件 ,这个控件需要pagerAdapter作为容器来提供数据,同时pagerAdapter的数据源是View数组 效果图如下 部分代码如下,实现如下的方法 mPagerAdapter = new PagerAdapter(){ @Override public int getCount() { return mViews.size(); } @Override public boolean isViewFromObject(View view, Object o

微信H5页面登录到支付的心得

这几天帮朋友做了一个微信H5页面,代码都是down下来的,只添加了微信登录和微信支付功能. 以前没这么搞过这方面的,不知道怎么入手,在同事的帮助下终于完成了,现在记录下来,避免以后继续踩坑. 1.首先你的公众号中必须支持微信网页授权的权限,创建了一个方法里面判断用户是否登录,没有的话那么就会去请求微信的接口获取用户的基本信息, 获取信息后存入到数据库,cookie和session中:下次进入的时候判断cookie和session中的数据是否和数据库的一致,一致的话就默认为登录状态.这样微信登录的

Android仿大众点评引导页(ViewPage)+主页面(Fragment)的实现

大家好,今天主要是实现仿大众点评引导页和主页面以及城市定位的实现,主要使用ViewPager+Fragment+SharedPreferences,实现了第一次打开程序出现引导页,再次打开跳过引导页,这也是一般应用常用的应用基本架构方式.下面首先来看最终实现效果如下图: 1.布局文件说明 1)欢迎页布局文件welcome.xml 2) 引导页布局文件welcome_guide.xml 3)首页布局文件main_home.xml 4)团购布局文件main_tuan.xml 5) 发现布局文件mai

启动页分为4页,最后一页有一个按钮,点击跳转到主页面

代码效果为:启动页分为4页,最后一页有一个按钮,点击跳转到主页面. 上代码: - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. UIScrollView * sv = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, 320, 460)]; sv.contentSize = CGSizeMake(320

Android ActionBar应用实战,高仿微信主界面的设计

转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/26365683 经过前面两篇文章的学习,我想大家对ActionBar都已经有一个相对较为深刻的理解了.唯一欠缺的是,前面我们都只是学习了理论知识而已,虽然知识点已经掌握了,但是真正投入到项目实战当中时会不会掉链子还很难说.那么不用担心,本篇文章我就将带领大家一起进入ActionBar的应用实战,将理论和实践完美结合到一起. 如果你还没有看过我的前两篇文章,建议先去阅读一下 Andr

Android控件:高仿微信主UI

高仿微信主UI 之前在Android组件:Fragment切换后保存状态 一文中讲到了Fragment切换后,是如何保存原来的状态的,最重要的就是用add方法取代现在各种教程常见的replace方法.然而我发现有不少App都貌似采用ViewPager + Fragment来做主UI的.于是在Android组件:Fragment切换后保存状态 的基础上加入了ViewPager,看了下微信界面,要高仿就尽力模仿到最像,所以也把ActionBar也修改成微信的样子. 先上一张效果图: 布局 我知道微信

ViewPager实现微信主界面

一前言 在微信中,tab底栏有四个按钮,中间是可以左右滑动的界面,上面一个标题栏,大致情况如此,今天我们就来模仿一下,写出微信的UI. 好,废话咱少讲,先来上图看效果. 二XML布局         1.Tab底栏  bottle.xml 在XML布局中,tab底栏我们用一个LinearLayout嵌套四个LinearLayout,这四个子LinearLayout中嵌套一个ImageButton和一个TextView垂直排列就好了. 1 <?xml version="1.0" e