文章目录

  • 一.首页标签页完善
    • 效果图
    • 具体实现
  • 二.微头条页面设计实现
    • 效果图
    • 实现思路
    • 具体实现
      • 布局
      • 微头条页面实体类
    • 业务逻辑代码

一.首页标签页完善

  • 在之前已经把首页北京标签的新闻列表页面基本上开发完成了。完成了一个页面的开发之后,其他页面只需要改相关的标题,图片,日期等信息就行了。信息直接从服务端获取。

效果图

具体实现

将MyApi中的getNewList方法增加一个变量(具体标签页信息的地址)和BaseUrl地址拼接。

在NewListFragment 中定义一个变量存放具体标签页的地址

添加带参数loadFirstUrl的构造方法,这样就可以在创建NewListFragment对象时将loadFirstUrl传入。

在HomeFragment中的MyPagerAdapter构造方法中将标签页地址传入NewListFragment对象中。

二.微头条页面设计实现

效果图

实现思路

  • 在TalkFragment中添加图片按钮点击事件来切换列表视图和网格视图
  • 获取服务端数据
  • 设置适配器

具体实现

布局

主页面fragment_pic.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:orientation="vertical" 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"    ><RelativeLayoutandroid:background="#FF4444"android:layout_width="match_parent"android:layout_height="40dp"><TextViewandroid:text="微头条"android:layout_centerInParent="true"style="@style/Title" /><ImageViewandroid:id="@+id/switchBtn"android:layout_centerVertical="true"android:layout_alignParentRight="true"style="@style/Switch" /></RelativeLayout><FrameLayoutandroid:layout_width="match_parent"android:layout_height="match_parent"android:padding="10dp"><ListViewandroid:id="@+id/listview"android:dividerHeight="10dp"android:layout_width="match_parent"android:layout_height="match_parent"></ListView><GridViewandroid:visibility="gone"android:id="@+id/gridview"android:numColumns="2"android:horizontalSpacing="10dp"android:verticalSpacing="10dp"android:layout_width="match_parent"android:layout_height="match_parent"></GridView></FrameLayout></LinearLayout>

列表和网格布局item_list_pic

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:orientation="vertical" 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:padding="10dp"
android:background="#FFFFFF"
android:layout_height="match_parent"><ImageViewandroid:id="@+id/item_image_pic"android:background="#C80000"android:layout_centerVertical="true"android:layout_alignParentRight="true"android:layout_width="match_parent"android:layout_height="200dp" /><TextViewandroid:id="@+id/item_title_pic"android:layout_width="match_parent"android:lines="1"android:textSize="23sp"android:text="我是标题"android:layout_height="wrap_content" /></LinearLayout>

微头条页面实体类

GsonFormat插件快捷创建
PicData

package com.xzit.bean;import java.util.List;public class PicData {public PicDataBean data;public int retcode;public static class PicDataBean {public String countcommenturl;public String more;public String title;public List<PicNewsBean> news;public List<?> topic;public static class PicNewsBean {public boolean comment;public String commentlist;public String commenturl;public int id;public String largeimage;public String listimage;public String pubdate;public String smallimage;public String title;public String type;public String url;}}
}

业务逻辑代码

  • 在TalkFragment中添加图片按钮点击事件来切换列表视图和网格视图
  • 获取服务端数据
  • 设置适配器
package com.xzit.fragment;import android.content.Context;
import android.graphics.Color;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;import com.bumptech.glide.Glide;
import com.example.administrator.zhjrtt.R;
import com.joanzapata.android.BaseAdapterHelper;
import com.joanzapata.android.QuickAdapter;
import com.xzit.bean.PicData;
import com.xzit.net.MyApi;import java.util.List;import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;public class TalkFragment extends BaseFragment {//1.布局//变量设置视图是否可见private  boolean isListVisible = true;ListView listView;GridView gridView;@Overrideprotected View getMyView() {View view= View.inflate(getContext(), R.layout.fragment_pic,null);//查找控件listView=view.findViewById(R.id.listview);gridView=view.findViewById(R.id.gridview);ImageView swtichBtn = view.findViewById(R.id.switchBtn);//点击事件swtichBtn.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {if(isListVisible){isListVisible = false;listView.setVisibility(View.GONE);gridView.setVisibility(View.VISIBLE);}else {isListVisible = true;listView.setVisibility(View.VISIBLE);gridView.setVisibility(View.GONE);}}});return view;}//2.获取服务端数据@Overridepublic void onActivityCreated(@Nullable Bundle savedInstanceState) {super.onActivityCreated(savedInstanceState);//retrofitretrofit.create(MyApi.class).getPicData().enqueue(new Callback<PicData>() {@Overridepublic void onResponse(Call<PicData> call, Response<PicData> response) {//成功Toast.makeText(getContext(), response.body().data.title, Toast.LENGTH_SHORT).show();setDataToView(response.body().data.news);}@Overridepublic void onFailure(Call<PicData> call, Throwable t) {//失败Toast.makeText(getContext(), "失败", Toast.LENGTH_SHORT).show();}});}//3.2编写QuitkAdapterclass PicAdapter extends QuickAdapter<PicData.PicDataBean.PicNewsBean>{public PicAdapter(Context context, int layoutResId, List<PicData.PicDataBean.PicNewsBean> data) {super(context, layoutResId, data);}@Overrideprotected void convert(BaseAdapterHelper helper, PicData.PicDataBean.PicNewsBean item) {helper.setText(R.id.item_title_pic,item.title);ImageView imageView = helper.getView(R.id.item_image_pic);String url = item.listimage.replace("http://10.0.2.2:8080/",HOST);Glide.with(getContext()).load(url).into(imageView);//3.4设置图片缩放imageView.setScaleType(ImageView.ScaleType.FIT_XY);}}//3.将数据设置给布局private void setDataToView(final List<PicData.PicDataBean.PicNewsBean> news) {//3.1布局条目录//3.2编写QuitkAdapter//3.3 创建适配器,赋值给ListView,还赋值给gridViewPicAdapter adapter =new PicAdapter(getContext(),R.layout.item_list_pic,news);listView.setAdapter(adapter);gridView.setAdapter(adapter);}
}

(仿头条APP项目)7.首页标签页完善和微头条页面设计实现相关推荐

  1. 头条App项目测试实战(七)实名认证功能用例设计

    实名认证 描述:有些功能操作中涉及到多步流程,下面看下在黑马头条中实名认证流程的功能测试.在这个功能点中我们重点关注测试的步骤流程,具体的细节部分(图片上传)将不再考虑. 效果: 测试用例设计与评审 ...

  2. 头条App项目测试实战(二)App手工测试流程以及需求分析与评审

    熟悉头条App项目步骤: 业务特性 用户与角色 组织架构图 技术栈 头条App测试流程(一次迭代) 测试流程 需求分析与评审 编写测试计划(测试方案) 设计测试用例与评审 执行测试用例与缺陷跟踪 编写 ...

  3. html 仿饿了点餐页面,JS实现仿饿了么在浏览器标签页失去焦点时网页Title改变

    说在前面:必须是基于支持H5的浏览器才可以 这个 API 本身非常简单,由以下三部分组成. document.hidden:表示页面是否隐藏的布尔值.页面隐藏包括 页面在后台标签页中 或者 浏览器最小 ...

  4. HTML5期末大作业:仿阴阳师游戏网站设计——仿阴阳师游戏官网首页(1页) 学生动手游页设计模板下载 网游大学生HTML网页制作作品 简单游戏网页设计成品 dreamweaver学生网站模板

    HTML5期末大作业:仿阴阳师游戏网站设计--仿阴阳师游戏官网首页(1页) 学生动手游页设计模板下载 网游大学生HTML网页制作作品 简单游戏网页设计成品 dreamweaver学生网站模板 常见网页 ...

  5. div+css静态网页设计游戏网站设计——仿阴阳师游戏官网首页(1页) 学生动手游页设计模板下载 网游大学生HTML网页制作作品 简单游戏网页设计成品 dreamweaver学生网站模板

    HTML5期末大作业:仿阴阳师游戏网站设计--仿阴阳师游戏官网首页(1页) 学生动手游页设计模板下载 网游大学生HTML网页制作作品 简单游戏网页设计成品 dreamweaver学生网站模板 常见网页 ...

  6. DIV布局大作业:仿悦世界游戏网站设计——仿悦世界游戏官网(6页) HTML+CSS+JavaScript web网页设计实例作业

    HTML5期末大作业:仿悦世界游戏网站设计--仿悦世界游戏官网(6页) HTML+CSS+JavaScript web网页设计实例作业 常见网页设计作业题材有 个人. 美食. 公司. 学校. 旅游. ...

  7. (仿头条APP项目)2.主界面按钮切换Fragment页面

    文章目录 主界面按钮切换Fragment页面 效果展示 框架结构 xml视图 主视图 选择器和style java代码模块 创建4个Fragment 1.绑定按钮选择事件 2.初始化和用HashMap ...

  8. (仿头条APP项目)5.列表页面设计实现

    文章目录 列表页面设计 效果图 具体实现 添加Glide依赖 添加主页面和两个列表布局 用GsonFormat快速创建NewListData实体类存放新闻列表数据 MyApi添加一个获取新闻列表的方法 ...

  9. (仿头条APP项目)6.点击过的新闻列表文字变灰和下拉刷新与滚动加载新闻数据

    文章目录 一.点击过的新闻列表文字变灰 效果图 实现思路 导入ormlite数据库类依赖 利用ormlite创建数据库和表 创建数据库类MyDbHelper 创建数据库中的新闻实体类NewInfo 页 ...

最新文章

  1. OpenCV学习笔记(一) 环境配置
  2. yum配置中driver-class-name: com.mysql.jdbc.Driver报错
  3. 计算机图形学颜色表示,计算机图形学 颜色表示模型.ppt
  4. 实验五 burpsuite重放攻击实验
  5. 恒大汽车:仍在就出售新能源汽车生活项目等资产进行磋商
  6. Abp vnext Web应用程序开发教程 4 —— 集成测试
  7. 工厂模式 java_JAVA设计模式之工厂模式(简单工厂模式+工厂方法模式)
  8. 手机平板巡检系统,掀起设备巡检的第2次革命
  9. hibernate 批量插入 Batch
  10. 【Python:统一时间格式YYYY-MM-DD】时间数据、格式处理、并根据时间合并dataframe
  11. FineReport.10 一(帆软)(报表基础练习)
  12. 获取微信公众号用户的openid
  13. php文件打开老是自动下载
  14. 蜗居中折射的三类男人
  15. 阿里云CDN工作原理、使用场景及产品优势简介
  16. C++11中的原子操作(atomic operation)和自旋锁
  17. Ubuntu完全教程
  18. Splunk中12小时制AM/PM的日期转换
  19. C++模板 —— 万字带你了解C++模板(蓝桥杯算法比赛必备知识STL基础)
  20. 名帖96 赵孟頫 小楷《汉汲黯传》

热门文章

  1. 跨链Cosmos(12) Cosmos插件
  2. 隐私计算--差分隐私
  3. 密码(图解密码技术)_第一章_环游密码世界总结
  4. 【Flask】Jinja2模板之过滤器
  5. 7-CPU Reset
  6. Fabric--区块链应用开发
  7. nedmalloc结构分析
  8. CreateProcess 重定向CMD实现反弹shell
  9. 【网络安全】身份验证凭证为何如此重要?
  10. 11.分页(10-10-12)