最近想做一个像facebook的侧边栏,但是刷新页面的功能无法实现

kyle_nirvana 2013-04-01 01:33:59
最近做了一个仿 facebook 人人的android侧边栏程序

现在我希望点击左边的 侧边目录 然后只会改变我右边的 fragment里面的内容

请问如何实现


package com.example.slidingmenu.activity;

import java.util.ArrayList;

import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.os.StrictMode;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentTransaction;
import com.example.slidingmenu.R;
import com.example.slidingmenu.fragment.LeftFragment;
import com.example.slidingmenu.fragment.PageFragment2;
import com.example.slidingmenu.fragment.ViewPageFragment;
import com.example.slidingmenu.fragment.ViewPageFragment.MyPageChangeListener;
import com.example.slidingmenu.view.SlidingMenu;

public class SlidingActivity extends FragmentActivity {
SlidingMenu mSlidingMenu;
LeftFragment leftFragment;

ViewPageFragment viewPageFragment;
public static int a=0;
public static Context context;
public Activity ac;
@Override
protected void onCreate(Bundle arg0) {
super.onCreate(arg0);
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder()
.permitAll().build();
StrictMode.setThreadPolicy(policy);
setContentView(R.layout.main);
init();
initListener();

}

private void init() {
context=getApplicationContext();
mSlidingMenu = (SlidingMenu) findViewById(R.id.slidingMenu);
mSlidingMenu.setLeftView(getLayoutInflater().inflate(
R.layout.left_frame, null));
mSlidingMenu.setCenterView(getLayoutInflater().inflate(
R.layout.center_frame, null));
FragmentTransaction t = this.getSupportFragmentManager()
.beginTransaction();
leftFragment = new LeftFragment();
t.replace(R.id.left_frame, leftFragment);
viewPageFragment = new ViewPageFragment();
t.replace(R.id.center_frame, viewPageFragment);
t.commit();
}

private void initListener() {
viewPageFragment.setMyPageChangeListener(new MyPageChangeListener() {
@Override
public void onPageSelected(int position) {
if(viewPageFragment.isFirst()){
mSlidingMenu.setCanSliding(true);
}else{
mSlidingMenu.setCanSliding(false);
}
}
});
}

public static void refresh()
{
Intent i = new Intent();
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
i.setClassName(SlidingActivity.context, "com.example.slidingmenu.activity.SlidingActivity");
SlidingActivity.context.startActivity(i);
ViewPageFragment.pagerItemList.clear();
}

public static void refresh1()
{
ViewPageFragment.pagerItemList = new ArrayList<Fragment>();
PageFragment2 page2 = new PageFragment2();
ViewPageFragment.pagerItemList.add(page2);
// Intent i = new Intent();
// i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
// i.setClassName(SlidingActivity.context, "com.example.slidingmenu.activity.MapActivity");
// SlidingActivity.context.startActivity(i);
}

public void showLeft() {
mSlidingMenu.showLeftView();
}

}


这个是我Activity的代码


package com.example.slidingmenu.fragment;

import java.util.ArrayList;

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.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.Button;

import com.example.slidingmenu.R;
import com.example.slidingmenu.activity.SlidingActivity;

public class ViewPageFragment extends Fragment {

private Button showLeft;
private MyAdapter mAdapter;
private ViewPager mPager;
public static ArrayList<Fragment> pagerItemList;

public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View mView = inflater.inflate(R.layout.view_pager, null);
showLeft = (Button) mView.findViewById(R.id.showLeft);
mPager = (ViewPager) mView.findViewById(R.id.pager);
PageFragment1 page1 = new PageFragment1();
PageFragment2 page2 = new PageFragment2();
PageFragment3 page3 = new PageFragment3();
pagerItemList = new ArrayList<Fragment>();
pagerItemList.add(page3);
if(SlidingActivity.a==0)
{
pagerItemList.add(page1);
}
else if(SlidingActivity.a==2)
{
pagerItemList.add(page2);
}

//
mAdapter = new MyAdapter(getFragmentManager());
mPager.setAdapter(mAdapter);
mPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {

@Override
public void onPageSelected(int position) {

if (myPageChangeListener != null)
myPageChangeListener.onPageSelected(position);
}

@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {

}

@Override
public void onPageScrollStateChanged(int position) {

}
});

return mView;
}

public void onActivityCreated(Bundle savedInstanceState) {

super.onActivityCreated(savedInstanceState);

showLeft.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
((SlidingActivity) getActivity()).showLeft();
}
});
}

public boolean isFirst() {
if (mPager.getCurrentItem() == 0)
return true;
else
return false;
}

public boolean isEnd() {
if (mPager.getCurrentItem() == pagerItemList.size() - 1)
return true;
else
return false;
}

public class MyAdapter extends FragmentPagerAdapter {
public MyAdapter(FragmentManager fm) {
super(fm);
}

@Override
public int getCount() {
return pagerItemList.size();
}

@Override
public Fragment getItem(int position) {

Fragment fragment = null;
if (position < pagerItemList.size())
fragment = pagerItemList.get(position);
else
fragment = pagerItemList.get(0);

return fragment;

}
}

private MyPageChangeListener myPageChangeListener;

public void setMyPageChangeListener(MyPageChangeListener l) {

myPageChangeListener = l;

}

public interface MyPageChangeListener {
public void onPageSelected(int position);
}

}


这个是侧边栏的代码


package com.example.slidingmenu.fragment;

import java.util.ArrayList;

import android.app.Activity;
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.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;

import com.example.slidingmenu.R;
import com.example.slidingmenu.activity.SlidingActivity;

public class LeftFragment extends Fragment {
ListView listView;
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.left, null);
if (container == null) {
return null;
}
listView = (ListView) view.findViewById(R.id.newlistview);
String[] item = new String[] {"HomePage", "News", "Web", "Map"};
ArrayAdapter<String> files = new ArrayAdapter<String>(getActivity(),
android.R.layout.simple_list_item_1,item);
listView.setAdapter(files);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {

@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int position, long arg3) {
if(position==2)
{
SlidingActivity.a=0;
ViewPageFragment.pagerItemList=new ArrayList<Fragment>();
SlidingActivity.refresh1();
}
if(position==1)
{
SlidingActivity.a=0;
ViewPageFragment.pagerItemList=new ArrayList<Fragment>();
SlidingActivity.refresh();
}
}
});
return view;
}

public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
}

}


这个是左边目录的代码,然后单个的fragment对应一个XML。

请各位大大指教。。。
...全文
129 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
wdwlbsm1 2013-04-02
  • 打赏
  • 举报
回复
看看这个 http://user.qzone.qq.com/490630954?ADUIN=490630954&ADSESSION=1364862498&ADTAG=CLIENT.QQ.4087_MyInfo_PersonalInfo.0&ptlang=2052#!app=2&via=QZ.HashRefresh&pos=1361864791
kyle_nirvana 2013-04-01
  • 打赏
  • 举报
回复
有人能帮忙一下么
kyle_nirvana 2013-04-01
  • 打赏
  • 举报
回复
引用 1 楼 ultrapro 的回复:
参考,https://github.com/jfeinstein10/SlidingMenu
貌似那个程序里面少一个ABS的包? 不好意思我是初学者 那个是系统自带需要导入的包么?》
kyle_nirvana 2013-04-01
  • 打赏
  • 举报
回复
我从git导入进去为什么还有报错呢。? 还有这个人的这个程序貌似我之前有看过。 上面那个大哥能帮我看看就我的程序怎么改么 我觉得我现在程序框架都是对的 就是更改一下如何实现那个显示的功能
儿大不由爷 2013-04-01
  • 打赏
  • 举报
回复
参考,https://github.com/jfeinstein10/SlidingMenu
傲游3浏览器是国内唯一具有独立内核的桌面浏览器产品,首创双核浏览模式,在安全、快速的基础上,保证了对网银、网购类网站的兼容性。傲游3浏览器内置云端广告过滤系统,强大而易用,确保用户在浏览网页时不受任何广告的骚扰。 傲游3浏览器界面简洁美观,布局合理。傲游3功能丰富,拥有在线收藏、鼠标手势、广告过滤、智能地址栏、多重搜索、页面截图、即时翻译等数十种实用功能,并且独有"快应用"、"团购指数"等创新性功能,充分让用户体验到基于新式浏览器的一站式互联网服务的魅力。 北京傲游(Maxthon)天下科技有限公司是一家国际化科研企业,在硅谷、香港等地设立有分公司。傲游旨在通过浏览器向用户提供全面的一站式互联网服务,产品覆盖桌面、手机、平板、机顶盒等平台,在全球范围内拥有几千万活跃用户。傲游致力于技术研发,于2009年10月28日在北京成立国内最大的专业浏览器研发中心,并在2010年8月份发布了国内首个独立核心浏览器产品:傲游3。目前傲游浏览器产品语言版本多达37种,遍布120个国家和地区,是国产软件走向世界的排头兵。 傲游浏览器3.1.8.1000 本次更新包含的新特性有: + 用户选择 "使用鼠标右键关闭标签" 后, 可以按住 Shift 在标签上点击右键打开标签内容菜单. 本次更新优化了下列功能: * 大幅增强极速核心的网页兼容性. 本次更新解决了如下问题: [主框架] * 解决同时按下 Alt + Ctrl + ESC 时, 浏览器失去响应的问题. * 重置所有选项后, 快速保存图片的路径会消失. * 已锁定的标签会干扰关闭全部标签的动作, 使其左侧的标签无法被关闭. * 调整侧边栏大小会使侧边栏失去焦点. [Webkit 核心] * 拖动某些网页中的图片会弹出下载. * 在网页内的文本框中选择文本, 鼠标右键菜单中没有 "粘贴" 项目. [用户界面] * 某些情况下, 取消 "后台标签显示关闭按钮" 后, 按钮依旧会显示, 切换标签后消失. * 在资源嗅探器中, 资源URL过长时, Tooltip 会出现滚动条. * 自定义界面的设置无法对新建的窗口生效. [智能地址栏] * 无论如何设置, 从地址栏打开的网页总会激活新标签. [智能填表] * 在输入框下拉菜单选择通用填表项时, 输入框会失去焦点. [迅雷下载模块] * 在英文系统下, 第一次启动傲游迅雷加速下载时语言显示不正确. * 关闭浏览器时迅雷下载模块可能会崩溃. 傲游浏览器3.1.7.1000 本次更新包含如下新特性: + 支持HTML5特性: Skydrive 直接拖拽添加上传文件, Gmail/163等邮件直接拖拽添加附件. 本次更新优化了下列功能: * 优化数据同步逻辑. * 优化内核启动速度. * 傲游迅雷加速下载使用新界面. 本次更新解决的问题如下: [主框架] * 没有启用老板键时, 点击任务栏托盘区的图标无效. * 某些情况下会出现无效的浏览历史条目. * 非自动登录情况下自定义界面设置无法保存. [Webkit 核心] * 运行迅雷, 有道词典或灵格斯划词翻译时, 浏览器可能会失去响应. * 解决一些核心崩溃的问题. * 增强核心兼容性. * 选中一段图文混排的文字, 在图片上点击鼠标右键的时候, 不会出现 "复制" 项目. [Trident 核心] * 兼容模式 window.open 未利用空白页. [用户界面] * 解决某种情况下侧边栏显示错误的问题. * 嗅探器的选择框在没有嗅探到内容的情况下, 勾选后无法取消. * 解决一些傲游迅雷加速下载的界面和语言问题. [侧边栏] * 浏览器登录时, 会重置侧边栏微博扩展的登录状态. [下载] * 傲游迅雷加速下载可能出现高资源占用率. * 增强傲游迅雷加速下载文件的兼容性. [资源嗅探器] * 批量下载显示错乱. [开发者工具] * 在网页中开启审查元素, 使用鼠标右键菜单保存图片, 会保存为 HTML 文件. 傲游浏览器3.1.6 正式版 3.1.6.1000 2011-08-25 本次更新包括下列优化: * 优化浏览器启动速度. * 优化页面 gif 动画播放效率. 本次更新对修复了以下问题: [Webkit 核心] * 解决一些页面兼容性问题. * 解决一些崩溃问题. * 从 WebSite-Watcher 调用傲游3, 打开保存在本地的网页时会出现 404 错误. * 对特殊字符转码问题会导致页面出现 404 错误. * 个别用户的图片另存为对话框无法弹出. * 在 Google+ 页面点击 "Start a Hangout" 后, 弹出 C++ Runtime 错误. * 点击 Facebook 连接提示登录. [主框架] * 解决部分系统中浏览器无法启动的问题. * 非自动登录浏览器帐号的情况下, 浏览器的侧边栏状态无法保存. * 用任务栏图标切换到傲游 3 窗口会出现焦点问题. [用户界面] * 使用数字键盘快捷键缩放网页时, 状态栏的缩放按钮显示数值不会变化. [收藏] * 在收藏栏中的 "更多收藏" 中, 进行快捷组和文件夹的转换时会有延迟. * 某些情况下收藏栏文件夹的鼠标右键菜单会出现闪烁. [下载] * 极速模式直接打开某些 FTP 下载链接时, 会提示无法连接到网站. [资源嗅探器] * 有时修改语言会导致嗅探器中的资源列表消失. [数据同步] * 不编辑过滤规则点击 "应用" 时, 会错误的进行同步. [阅读模式] * 已经隐藏的工具条仍然响应鼠标事件. * 增强阅读模式兼容性. * 某些情况下页面不响应鼠标动作. 傲游浏览器3.1.5 正式版 + 加入我的魔盒(即外部工具), 入口位于快速工具栏, 用户可以从魔盒中快速调用计算器, 画图等系统工具, 还可以加入自定义的工具. + 工具栏及侧边栏支持通过鼠标拖拽调整顺序. + 拼写检查支持10种语言, 中文版不包含此功能. + 中文侧边栏加入新浪微博扩展. + 加入恶意网址拦截计数, 傲游时刻确保用户的网络浏览安全. * 优化标签切换性能. * 优化极速模式内存占用 * 滚动条体验增强 * 为截图工具条添加了拖拽手柄. 傲游浏览器3.1.4 正式版 启用全新设计的快速访问, 用户可以自定义背景图, 可定义最多9页快速访问内容。 添加了打印预览功能。 标签自动刷新可以指定时间。 超级截图现在能够识别窗体 添加一款标签下置皮肤, 基于现代风格定制。 3.1.3.2000 2011-07-14 本次更新解决了以下问题 主框架 设置stunnel类型的代理后, 记事本不能同步. Webkit 核心 使用鼠标右键菜单中的复制在网页上复制文字的时候, 粘贴到记事本中会丢失换行符. 收藏 从收藏栏一次性打开某文件夹下所有收藏项目时,标签的顺序与收藏的顺序相反. 傲游浏览器3.1.3 正式版 [阅读模式] 可以使用左右方向键进行翻页, 使用上下方向键进行滚屏. [超级截图] 为气泡添加了白色背景. 文字框可以拖动. 放大镜坐标改成截图尺寸. 傲游3.1.2.1000正式版重要更新: 英文拼写检查 英文拼写检查可以在你输入过程中提示可能有错误的英文单词, 用红色波浪线进行标注, 在标注上点击鼠标右键可以看到词库的拼写建议. 当然你也可以把自造词或者词库中没有的单词加入词库 最易用的广告过滤规则分享与安装 通过广告过滤规则分享功能,用户可以轻松分享自己独有的广告过滤规则。过滤规则的安装方式也大幅简化,用户只需复制规则,傲游3浏览器即可自动判断,并且进行安装。 历史日历 按Ctrl+H,可以打开傲游3的历史,本次更新在历史中添加了历史日历功能,通过此功能可以直接转跳到特定的日期的历史。日历格式与普通日历一致,以月为单位,便于用户查找、定位。 自动刷新 在标签上点击右键,即可设置自动刷新选项,刷新间隔为5秒、10秒、30秒三个档次。自动刷新功能可以保持网页在最新状态,以便用户随时查询。 3.1.1.600_Beta本次更新加入的特性有: Webkit核心 加入英文拼写检查功能,支持通过鼠标右键菜单添加用户词典. 标签 标签的右键菜单加入了"自动刷新"功能. 侧边栏 中文版侧边栏加入游戏及团购的快速入口. 侧边栏使用扩展方式实现,高级用户可以通过"%appdata%\Maxthon3\Addons\"下的扩展包,自定义侧边栏按钮以及内容. 历史管理器 加入日历视图 广告过滤 加入广告过滤的分享及自动安装功能 本次更新包括以下功能优化: 同步 同步中心支持是否启用收藏同步 团购点评 团购点评图标更新,显示评论数. Flash 内建Flash插件更新至10.3.181.26 本次更新解决了下列问题: 主框架 修正设置快速保存目录时可能会出现的程序崩溃. 切换代理后不会立即生效. WindowsXP系统下,使用IE6核心时,淘宝商城订单页面自动跳转为兼容模式,会显示"无法购买". 解决在部分团购网站无法顺利支付的问题. 解决拍拍网使用中信银行无法顺利支付的问题. 安全 修正WebkitBugzilla52688安全问题. Webkit核心 解决一个历史文件导致登录崩溃的问题. 在某些网站密码框中无法正确屏蔽密码. 在Facebook点击图片或视频进入影院模式,点击关闭按钮后浏览器显示的页面不正常. Facebook照片关闭时,会回到个人主页. 点击某些网页上的连接,地址栏不会改变. 无法在某些Flash中输入中文. 某些网页会无故跳转到手机版. Trident核心 某些网页上的操作会导致无故多开一个页面. 用户界面 WindowsXP系统下启动浏览器侧边栏显示异常. 选项 不自动登录账户的情况下,登录账户后,"只允许打开一个浏览器窗口"选项不起作用 智能地址栏 输入法上屏的字母地址栏不会自动补全. 下载 下载意外断开后,恢复下载时会出现问题. 下载路径异常时可能会建立一个无法正常删除的文件夹. http://bbs.maxthon.cn/viewthread.php?tid=507136 开发者工具 在www.yahoo.com中使用审查元素,首次总是定位在标签上. 有时首次点击审查元素时无法定位. 傲游浏览器3.1.1 正式版 Webkit 升级至 534.12 , 综合性能提升 32.6% JavaScript 引擎升级综合性能提升20%. 加入团购点评功能, 傲游团购点评网站同步上线 http://tuan.maxthon.cn/dianping/ 加入同步中心 加入团购点评功能, 傲游团购点评网站同步上线 http://tuan.maxthon.cn/dianping/ 加入同步中心 支持皮肤文件(*.mxskin)关联, 加入皮肤管理器 自动订阅常用网站过滤规则及全局规则 大幅优化了浏览器的性能与稳定性 傲游浏览器3.0.24.1000 正式版 在菜单>>视图>>自定义界面中加入"工具按钮"项目 在多重搜索中加入比价搜索 加入快递查询功能 现在点击"打开", 目标将会被存入临时目录 增加是否启用多窗口的选项 支持查看 cookie 扩充了安全网址认证库 优化标签打开、切换、关闭性能 增强了收藏同步协议, 支持了更多的网络环境 支持填表和保存表单的快捷键、鼠标手势自定义 右键"目标另存为"对话框采用系统风格

80,471

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧