侧拉
来源:互联网 发布:淘宝蚂蚁摄影怎么样 编辑:程序博客网 时间:2024/04/27 10:27
主函数代码
import android.graphics.Color;import android.os.Bundle;import android.support.v4.app.FragmentManager;import android.support.v4.app.FragmentTransaction;import android.support.v7.app.AppCompatActivity;import android.view.View;import android.widget.Button;public class MainActivity extends AppCompatActivity { Button xqy; Button zhuye; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); xqy = (Button) findViewById(R.id.qqy); zhuye = (Button) findViewById(R.id.zhuye); FragmentManager manager = getSupportFragmentManager(); FragmentTransaction transaction = manager.beginTransaction(); transaction.replace(R.id.frag, new Zhuye()); transaction.commit(); zhuye.setBackgroundColor(Color.RED); xqy.setBackgroundColor(Color.GRAY); zhuye.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { FragmentManager manager = getSupportFragmentManager(); FragmentTransaction transaction = manager.beginTransaction(); transaction.replace(R.id.frag, new Zhuye()); transaction.commit(); zhuye.setBackgroundColor(Color.RED); xqy.setBackgroundColor(Color.GRAY); } }); xqy.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { FragmentManager manager = getSupportFragmentManager(); FragmentTransaction transaction = manager.beginTransaction(); transaction.replace(R.id.frag, new Xql()); transaction.commit(); zhuye.setBackgroundColor(Color.GRAY); xqy.setBackgroundColor(Color.RED); } }); }}
主界面布局
<?xml version="1.0" encoding="utf-8"?><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" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin"> <android.support.v4.widget.DrawerLayout android:layout_width="match_parent" android:layout_height="match_parent"> <RelativeLayout android:layout_width="150dp" android:layout_height="match_parent" android:layout_gravity="left" android:background="#fff"> <ImageView android:id="@+id/dl_img" android:layout_width="50dp" android:layout_height="50dp" android:padding="10dp" android:src="@mipmap/ic_launcher" /> <TextView android:id="@+id/name1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/dl_img" android:gravity="center" android:padding="10dp" android:text="aaaaa" /> <TextView android:id="@+id/xw" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/name1" android:gravity="center" android:padding="10dp" android:text="新闻" /> <TextView android:id="@+id/yl" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/xw" android:gravity="center" android:padding="10dp" android:text="娱乐" /> <TextView android:id="@+id/sh" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/yl" android:gravity="center" android:padding="10dp" android:text="社会" /> <TextView android:id="@+id/js" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/sh" android:gravity="center" android:padding="10dp" android:text="军事" /> </RelativeLayout> <RelativeLayout android:layout_width="match_parent" android:layout_height="match_parent"> <LinearLayout android:id="@+id/ll" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:gravity="center" android:orientation="horizontal"> <Button android:id="@+id/zhuye" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:gravity="center" android:text="主页" /> <Button android:id="@+id/qqy" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:gravity="center" android:text="详情页" /> </LinearLayout> <FrameLayout android:id="@+id/frag" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_above="@+id/ll"></FrameLayout> </RelativeLayout> </android.support.v4.widget.DrawerLayout></RelativeLayout>
主页代码
import android.os.Bundle;import android.support.annotation.Nullable;import android.support.design.widget.TabLayout;import android.support.v4.app.Fragment;import android.support.v4.app.FragmentPagerAdapter;import android.support.v4.view.ViewPager;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import java.util.ArrayList;import java.util.List;public class Zhuye extends Fragment { TabLayout tab; ViewPager vp; private List<String> list; @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View v = View.inflate(getActivity(), R.layout.zy, null); tab = v.findViewById(R.id.tab); vp = v.findViewById(R.id.vp); list = new ArrayList<>(); list.add("social"); list.add("guonei"); list.add("world"); list.add("huabian"); list.add("tiyu"); list.add("nba"); list.add("football"); list.add("keji"); list.add("startup"); list.add("apple"); vp.setAdapter(new FragmentPagerAdapter(getActivity().getSupportFragmentManager()) { @Override public CharSequence getPageTitle(int position) { return list.get(position); } @Override public Fragment getItem(int position) { Fragments fragments = new Fragments(); Bundle bundle = new Bundle(); if (list.get(position).endsWith("social")) { bundle.putString("name", "football"); } else if (list.get(position).endsWith("guonei")) { bundle.putString("name", "apple"); } else if (list.get(position).endsWith("world")) { bundle.putString("name", "world"); } else if (list.get(position).endsWith("huabian")) { bundle.putString("name", "huabian"); } else if (list.get(position).endsWith("tiyu")) { bundle.putString("name", "tiyu"); } else if (list.get(position).endsWith("nba")) { bundle.putString("name", "nba"); } else if (list.get(position).endsWith("football")) { bundle.putString("name", "football"); } else if (list.get(position).endsWith("keji")) { bundle.putString("name", "keji"); } else if (list.get(position).endsWith("startup")) { bundle.putString("name", "startup"); } else if (list.get(position).endsWith("apple")) { bundle.putString("name", "apple"); } fragments.setArguments(bundle); return fragments; } @Override public int getCount() { return list.size(); } }); tab.setupWithViewPager(vp); return v; }}
主页布局
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent"> <android.support.design.widget.TabLayout android:id="@+id/tab" android:layout_width="match_parent" android:layout_height="wrap_content" android:fillViewport="false" app:tabIndicatorColor="#052efc" app:tabIndicatorHeight="5dp" app:tabMode="scrollable" app:tabSelectedTextColor="#f9ec03" app:tabTextColor="#f204ce"></android.support.design.widget.TabLayout> <android.support.v4.view.ViewPager android:id="@+id/vp" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_below="@+id/tab"></android.support.v4.view.ViewPager></RelativeLayout>
详情页代码
import android.content.Context;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.support.annotation.Nullable;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.BaseAdapter;import android.widget.GridView;import android.widget.ImageView;import android.widget.ListView;import android.widget.TextView;import com.bigkoo.convenientbanner.ConvenientBanner;import com.bigkoo.convenientbanner.holder.CBViewHolderCreator;import com.bigkoo.convenientbanner.holder.Holder;import com.bigkoo.convenientbanner.listener.OnItemClickListener;import com.google.gson.Gson;import com.jwenfeng.library.pulltorefresh.BaseRefreshListener;import com.jwenfeng.library.pulltorefresh.PullToRefreshLayout;import com.nostra13.universalimageloader.core.ImageLoader;import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;import java.io.BufferedReader;import java.io.InputStream;import java.io.InputStreamReader;import java.net.HttpURLConnection;import java.net.URL;import java.util.Arrays;import java.util.List;public class Xql extends Fragment implements OnItemClickListener { private String path; private int shu = 10; private ListView xqy_lv; private GridView xqy_gv; private PullToRefreshLayout pull; private PullToRefreshLayout pull_1; ConvenientBanner conven; private Handler handler = new Handler() { @Override public void handleMessage(Message msg) { if (msg.what == 0) { JsonBean bean = (JsonBean) msg.obj; list = bean.getNewslist(); Log.i("aaa", list.toString()); myad = new Myad(); xqy_gv.setAdapter(myad); myad1 = new Myad1(); xqy_lv.setAdapter(myad1); } } }; private List<JsonBean.NewslistBean> list; private String[] imgs = new String[]{ "http://image.wufazhuce.com/FvVmWbqlle7jlUCTeozoval9NyBH", "http://image.wufazhuce.com/FmDRnQ1XhReHRHB4jYqAPSx8htsP", "http://image.wufazhuce.com/Fu6o0fqKHsI_TjdpPX3N2Kc99vNP", "http://image.wufazhuce.com/FuPgOcbGDD9__fyuCdPBXb5pbA1C"}; List<String> datas; ImageLoader imageLoader; private Myad myad; private Myad1 myad1; @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View v = View.inflate(getActivity(), R.layout.xqy, null); xqy_lv = v.findViewById(R.id.xqy_lv); xqy_gv = v.findViewById(R.id.xqy_gv); conven = v.findViewById(R.id.conven); pull = v.findViewById(R.id.xqy_pull); pull_1 = v.findViewById(R.id.xqy_pull_1); imageLoader = ImageLoader.getInstance(); imageLoader.init(ImageLoaderConfiguration.createDefault(getActivity())); datas = Arrays.asList(imgs); conven.setPages(new CBViewHolderCreator() { @Override public Object createHolder() { return new Ha(); } }, datas) //设置指示器是否可见 .setPointViewVisible(true) //设置自动切换(同时设置了切换时间间隔) .startTurning(2000) //设置两个点图片作为翻页指示器,不设置则没有指示器,可以根据自己需求自行配合自己的指示器,不需要圆点指示器可用不设 .setPageIndicator(new int[]{R.drawable.ic_page_indicator, R.drawable.ic_page_indicator_focused}) //设置指示器的方向(左、中、右) .setPageIndicatorAlign(ConvenientBanner.PageIndicatorAlign.CENTER_HORIZONTAL) //设置点击事件 .setOnItemClickListener(this) //默认是TRUE .setManualPageable(true); getdata(); pull.setRefreshListener(new BaseRefreshListener() { @Override public void refresh() { handler.postDelayed(new Runnable() { @Override public void run() { path = "http://api.tianapi.com/apple/?key=51f42ae57be18f5f5d7b402ef0bc64aa&num=" + (shu++); getdata(); myad.notifyDataSetChanged(); pull.finishRefresh(); } }, 3000); } @Override public void loadMore() { handler.postDelayed(new Runnable() { @Override public void run() { path = "http://api.tianapi.com/apple/?key=51f42ae57be18f5f5d7b402ef0bc64aa&num=" + (shu++); getdata(); myad.notifyDataSetChanged(); pull.finishLoadMore(); } }, 3000); } }); pull_1.setRefreshListener(new BaseRefreshListener() { @Override public void refresh() { handler.postDelayed(new Runnable() { @Override public void run() { path = "http://api.tianapi.com/apple/?key=51f42ae57be18f5f5d7b402ef0bc64aa&num=" + (shu++); getdata(); myad1.notifyDataSetChanged(); pull_1.finishRefresh(); } }, 3000); } @Override public void loadMore() { handler.postDelayed(new Runnable() { @Override public void run() { path = "http://api.tianapi.com/apple/?key=51f42ae57be18f5f5d7b402ef0bc64aa&num=" + (shu++); getdata(); myad1.notifyDataSetChanged(); pull_1.finishLoadMore(); } }, 3000); } }); return v; } class Myad extends BaseAdapter { private final int lin = 0; private final int one = 1; @Override public int getCount() { return list.size(); } @Override public Object getItem(int i) { return null; } @Override public long getItemId(int i) { return 0; } @Override public View getView(int i, View view, ViewGroup viewGroup) { View v = View.inflate(getActivity(), R.layout.item1, null); ImageView img = v.findViewById(R.id.item_img); TextView item_text = v.findViewById(R.id.item_text); item_text.setText(list.get(i).getTitle()); ImageLoader.getInstance().displayImage(list.get(i).getPicUrl(), img); return v; } } class Myad1 extends BaseAdapter { private final int lin = 0; private final int one = 1; @Override public int getCount() { return list.size(); } @Override public Object getItem(int i) { return null; } @Override public long getItemId(int i) { return 0; } @Override public View getView(int i, View view, ViewGroup viewGroup) { View v = View.inflate(getActivity(), R.layout.item2, null); ImageView img = v.findViewById(R.id.item2img); TextView item_text = v.findViewById(R.id.item2text); item_text.setText(list.get(i).getTitle()); ImageLoader.getInstance().displayImage(list.get(i).getPicUrl(), img); return v; } } private void getdata() { new Thread() { @Override public void run() { if (path == null) { path = "http://api.tianapi.com/apple/?key=51f42ae57be18f5f5d7b402ef0bc64aa&num=" + shu; } try { URL url = new URL(path); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod("GET"); connection.setReadTimeout(5000); connection.setConnectTimeout(5000); if (connection.getResponseCode() == 200) { InputStream stream = connection.getInputStream(); String json = zhuan(stream, "utf-8"); Log.i("aaa", json); Gson gson = new Gson(); JsonBean fromJson = gson.fromJson(json, JsonBean.class); Log.i("aaa", "aaaaaa"); Message message = Message.obtain(); message.what = 0; message.obj = fromJson; handler.sendMessage(message); } } catch (Exception e) { e.printStackTrace(); } super.run(); } }.start(); } private String zhuan(InputStream stream, String s) { try { InputStreamReader inputStreamReader = new InputStreamReader(stream, s); BufferedReader reader = new BufferedReader(inputStreamReader); String ss = null; StringBuilder builder = new StringBuilder(); while ((ss = reader.readLine()) != null) { builder.append(ss); } inputStreamReader.close(); return builder.toString(); } catch (Exception e) { e.printStackTrace(); } return null; } @Override public void onItemClick(int position) { } private class Ha implements Holder<String> { private ImageView imageView; @Override public View createView(Context context) { imageView = new ImageView(context); imageView.setScaleType(ImageView.ScaleType.FIT_XY); return imageView; } @Override public void UpdateUI(Context context, int position, String data) { ImageLoader.getInstance().displayImage(data, imageView); } }}
详情页布局
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <com.bigkoo.convenientbanner.ConvenientBanner android:id="@+id/conven" android:layout_width="match_parent" android:layout_height="100dp"></com.bigkoo.convenientbanner.ConvenientBanner> <com.jwenfeng.library.pulltorefresh.PullToRefreshLayout android:id="@+id/xqy_pull" android:layout_width="match_parent" android:layout_height="150dp"> <GridView android:id="@+id/xqy_gv" android:layout_width="match_parent" android:layout_height="150dp" android:numColumns="4"></GridView> </com.jwenfeng.library.pulltorefresh.PullToRefreshLayout> <com.jwenfeng.library.pulltorefresh.PullToRefreshLayout android:id="@+id/xqy_pull_1" android:layout_width="match_parent" android:layout_height="match_parent"> <ListView android:id="@+id/xqy_lv" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_below="@+id/xqy_gv"></ListView> </com.jwenfeng.library.pulltorefresh.PullToRefreshLayout></LinearLayout>
Fragment + 网络请求 + 适配器
import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.support.annotation.Nullable;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.BaseAdapter;import android.widget.ImageView;import android.widget.ListView;import android.widget.TextView;import com.google.gson.Gson;import com.jwenfeng.library.pulltorefresh.BaseRefreshListener;import com.jwenfeng.library.pulltorefresh.PullToRefreshLayout;import com.nostra13.universalimageloader.core.ImageLoader;import java.io.BufferedReader;import java.io.InputStream;import java.io.InputStreamReader;import java.net.HttpURLConnection;import java.net.URL;import java.util.List;public class Fragments extends Fragment { PullToRefreshLayout pull; ListView pull_lv; private String s; private int shu = 10; private String path; List<JsonBean.NewslistBean> list; MyAdapter myAdapter; private Handler handler = new Handler() { @Override public void handleMessage(Message msg) { if (msg.what == 0) { JsonBean bean = (JsonBean) msg.obj; list = bean.getNewslist(); Log.i("aaa",list.toString()); myAdapter = new MyAdapter(); pull_lv.setAdapter(myAdapter); } } }; @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View v = View.inflate(getActivity(), R.layout.fragments, null); pull = v.findViewById(R.id.pull); pull_lv = v.findViewById(R.id.pull_lv); Bundle bundle = getArguments(); s = bundle.getString("name", "social"); getdata(s); pull.setRefreshListener(new BaseRefreshListener() { @Override public void refresh() { handler.postDelayed(new Runnable() { @Override public void run() { shu++; path = "http://api.tianapi.com/" + s + "/?key=51f42ae57be18f5f5d7b402ef0bc64aa&num=" + shu; getdata(s); myAdapter.notifyDataSetChanged(); pull.finishRefresh(); } }, 3000); } @Override public void loadMore() { handler.postDelayed(new Runnable() { @Override public void run() { shu++; path = "http://api.tianapi.com/" + s + "/?key=51f42ae57be18f5f5d7b402ef0bc64aa&num=" + shu; getdata(s); myAdapter.notifyDataSetChanged(); pull.finishLoadMore(); } }, 3000); } }); return v; } private void getdata(final String s) { new Thread() { @Override public void run() { path = "http://api.tianapi.com/" + s + "/?key=51f42ae57be18f5f5d7b402ef0bc64aa&num=" + shu; try { URL url = new URL(path); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod("GET"); connection.setReadTimeout(5000); connection.setConnectTimeout(5000); if (connection.getResponseCode() == 200) { InputStream stream = connection.getInputStream(); String json = zhuan(stream, "utf-8"); Log.i("aaa",json); Gson gson = new Gson(); JsonBean fromJson = gson.fromJson(json, JsonBean.class); Message message = Message.obtain(); message.what = 0; message.obj = fromJson; handler.sendMessage(message); } } catch (Exception e) { e.printStackTrace(); } } }.start(); } private String zhuan(InputStream stream, String s) { try { InputStreamReader inputStreamReader = new InputStreamReader(stream, s); BufferedReader reader = new BufferedReader(inputStreamReader); String ss = null; StringBuilder builder = new StringBuilder(); while ((ss = reader.readLine()) != null) { builder.append(ss); } inputStreamReader.close(); return builder.toString(); } catch (Exception e) { e.printStackTrace(); } return null; } class MyAdapter extends BaseAdapter { private final int lin = 0; private final int one = 1; @Override public int getCount() { return list.size(); } @Override public Object getItem(int i) { return null; } @Override public long getItemId(int i) { return 0; } @Override public View getView(int i, View view, ViewGroup viewGroup) { int type = getItemViewType(i); Diyi diyi; Dier dier; switch (type) { case lin: if (view == null) { view = View.inflate(getActivity(), R.layout.diyi, null); diyi = new Diyi(); diyi.yiimg1 = view.findViewById(R.id.yiimg); diyi.yitext = view.findViewById(R.id.yitext); view.setTag(diyi); } break; case one: if (view == null) { view = View.inflate(getActivity(), R.layout.dier, null); dier = new Dier(); dier.erimg1 = view.findViewById(R.id.erimg1); dier.erimg2 = view.findViewById(R.id.erimg2); dier.erimg3 = view.findViewById(R.id.erimg3); view.setTag(dier); } break; default: break; } switch (type) { case lin: diyi = (Diyi) view.getTag(); diyi.yitext.setText(list.get(i).getTitle()); ImageLoader.getInstance().displayImage(list.get(i).getPicUrl(), diyi.yiimg1); break; case one: dier = (Dier) view.getTag(); ImageLoader.getInstance().displayImage(list.get(i).getPicUrl(), dier.erimg1); ImageLoader.getInstance().displayImage(list.get(i).getPicUrl(), dier.erimg2); ImageLoader.getInstance().displayImage(list.get(i).getPicUrl(), dier.erimg3); break; default: break; } return view; } @Override public int getItemViewType(int position) { int i = position % 2; if (i == 0) { return 0; } else { return 1; } } @Override public int getViewTypeCount() { return 2; } class Diyi { ImageView yiimg1; TextView yitext; } class Dier { ImageView erimg1, erimg2, erimg3; } }}
阅读全文
1 0
- 侧拉
- 侧拉
- 侧拉
- 侧拉
- 侧拉
- ios侧拉
- ios storyboard侧拉
- ios侧拉菜单
- 侧拉删除
- TableView侧拉删除
- 63.侧拉菜单
- SlidingMenu侧拉菜单
- 侧拉菜单
- 侧拉菜单
- 侧拉删除
- SlidingPaneLayout:侧拉菜单
- slidingmenu侧拉菜单
- 侧拉新闻菜单
- ViewPager+侧滑+无线轮播
- Python 3.0最简单的爬虫
- RNN-循环神经网络和LSTM_01基础
- js限制input输入
- OCILIB 连接Oracle数据库——插入数据
- 侧拉
- Android:字母大小写转换
- 安卓手机图片相似度对比--OpenCV感知哈希算法
- 插入排序算法
- OCILIB 连接Oracle数据库——注意事项
- SAP HANA 平台介绍
- linux下执行mysql时报错:unknown variable 'default-character-set=utf8'
- 实现表格的增删改查
- RNN-循环神经网络-02Tensorflow中的实现