android 点击tab页实现当前页面的刷新

Android使用TabHost实现在首页tab再次点击首页tab时,刷新首页数据或者recyclerView回到顶部的需求 类似今日头条,实现这么一个需求:“在首页tab时再次点击首页tab,首页列表刷新数据或者列表回到顶部,而从其他tab切换过来时不需要首页刷新数据或者列表回到顶部”。1,监听tab切换private String texts[] = {"首页", "发现","频道", "我的"};tabhost.setOnTabChangedListener(new TabHost.OnTabChangeListe... 阅读详情

最近要实现一个像新浪微博的点击首页实现当前页面的刷新。在网上看了好多文章,最终还是在Google上的http://stackoverflow.com/questions/5487770/get-notified-when-current-tab-is-selected-again得到了启发,终于能够实现此功能,现在就把实现此功能的做法。。

原文是这样说的。。。(此部分代码是Google上的。也就是http://stackoverflow.com/questions/5487770/get-notified-when-current-tab-is-selected-again)

I implemented a TabActivity which implements the OnTabChangeListener. The activity will be notified on tab changes (onTabChanged(String tabId)).

Is it also possible to get notified if the user selects the current tab again?

I would like to use this event to perform a "refresh" of the current tab content instead of providing a refresh button on the tab or in the options menu.


That's the way I finally solved the problem - solution hint was in MisterSquonk answer.

(1) Define a OnTabReselectListener which must be implemented by an activity which represents a tab content and which will be notified on reselect events.

/**
 * Interface definition for a callback to be invoked when a current selected tab
 * in a TabHost is selected again.
 */
public interface OnTabReselectListener {

    /**
     * Called when a current visible tab is selected again. Will not be invoked
     * on tab changes.
     */
    void onTabReselect();

}

(2) setOnTouchListener for each tabWidget child in onCreate() of the TabActivity (from MisterSquonk's answer)

for (int i = 0; i < tabWidget.getChildCount(); i++) {
    View v = tabWidget.getChildAt(i);
    v.setOnTouchListener(this);
}

(3) Implement OnTouchListener.onTouch() in the TabActivity. Do some logic to decide if the current tab was selected again and notifiy the tab's activity.

/**
 * @see android.view.View.OnTouchListener#onTouch(android.view.View,
 *      android.view.MotionEvent)
 */
@Override
public boolean onTouch(View v, MotionEvent event) {
    boolean consumed = false;
    // use getTabHost().getCurrentTabView to decide if the current tab is
    // touched again
    if (event.getAction() == MotionEvent.ACTION_DOWN
            && v.equals(getTabHost().getCurrentTabView())) {
        // use getTabHost().getCurrentView() to get a handle to the view
        // which is displayed in the tab - and to get this views context
        View currentView = getTabHost().getCurrentView();
        Context currentViewContext = currentView.getContext();
        if (currentViewContext instanceof OnTabReselectListener) {
            OnTabReselectListener listener = (OnTabReselectListener) currentViewContext;
            listener.onTabReselect();
            consumed = true;
        }
    }
    return consumed;
}

但是我自己做了修改,我用的是tab选项卡布局。。在TabActivity中定义一个接口。

 //用于实现点击首页按钮的接口
  public interface OnTabReselectListener
  {
    public void onTabReselect();

  }

在Tabactivity的onCreate()方法中

    mainTab = (RadioGroup) findViewById(R.id.main_radio);
    mainTab.getChildAt(0).setOnClickListener(this);//首页按钮点击事件

在TabActivity实现OnClickListener

 @Override
  public void onClick(View v)
  {

   //这两行代码的具体含义正在研究
    View currentView = getTabHost().getCurrentView();
    Context currentViewContext = currentView.getContext();
    if (currentViewContext instanceof OnTabReselectListener)
    {
      OnTabReselectListener listener = (OnTabReselectListener) currentViewContext;
      listener.onTabReselect();
    }
  }


在你想实现刷新的Activity中实现OnTabReselectListener,重写onTabReselect()

 // 实现动态按钮的点击事件
  @Override
  public void onTabReselect()
  {
    listInfo.setSelection(0);//使得当前的listview回到顶部
    refreshInfoData();//异步刷新数据的方法,该方法中通过异步获取数据。显示到布局中
  }

以上不完善的地方就是点击刷新时的顶部不能出现正在加载字样。但功能已实现,,能够刷新数据并显示

Android之TabLayout+ViewPager2+FragmentStateAdapter实现带数字变化的TAB选项 1 问题 TabLayout+ViewPager2实现带数字变化的TAB选项,然后左边滑动或者点击上面的Tab切换fragment不能刷新 2 结果爆照 3 代码实现 layer_tab_indicator.xml <?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="ht... 阅读详情

相关推荐

Android图形系统(三)系统篇:渲染/合成的底层原理浅析

众所周知,渲染工作是由GPU负责,那么在聊GPU之前首先得知道什么是“渲染”?我们来举个例子感受一下在系统中申请一块10*101、把图层背景这玩意染成绿的2、从左上(0,0)到右下(10,10)画一条宽度为1颜色为红色的直线3、以坐标点(5,5)为中心,画一个半径为3的实心圆,颜色要蓝色好了,接下来操作系统会把这些“绘图指令”同步给GPU去执行渲染任务图片来源:自己画的GPU完成渲染工作后,我们将会得到一个大小为10*10二维数组,数组中的每个元素都保存着坐标点的颜色信息、深度信息。

1358

TabLayout 踩坑之 onTabSelected没有被回调的问题

一、 问题描述 最近项目中有个需求:一个页面顶部有3个tab,每一个tab分别展示一个不同的页面,点击tab 切换到对应页面。进入页面是默认选中第一个页面。 这不很简单的一个需求嘛?很明显,用TabLayout 分分钟实现,于是打开Android Studio ,几分钟后写下了如下代码: public class TabActivity extends AppCompatActivity { private TabLayout mTabLayout; @Override protec

weixin_42814000的博客 1724

海康威视web控件开发+vue结合做网页开发

需求:vue的项目,需要在页面展示出海康的硬盘录像机连接的摄像头的实时监控画面以及回放功能. 准备:web开发包(包含插件以及demo,在海康官网即可下载32位64位的都有.那些需要积分下载的博主良心不疼么.) 点击这里下载:链接: https://pan.baidu.com/s/12FrbycWyWWyiRJH5Yd1tPA 提取码: gam5 开始开发: 1.安装demo目录下的WebComponentsKit.exe插件(根据自己的浏览器以及系统选择32位还是64位的插件) 2.打.

u013682258的博客 8484

android筛选框逻辑,Android UI 之 TabLayout动态添加tab实现筛选及自动偏移(全选,单选)...

本文出自:http://blog..net/dt235201314/article/details/76528029一丶效果展示(代码链接见文末)二丶概述1.Android开发,数据的筛选通常由后台处理,网络请求穿不同参数,即可。理论上TabLayout可以实现单选多选的筛选。2.自动偏移的重要性,1.提醒用户屏幕外有可选项,2.操作简单,体验效果提高。三丶功能介绍1.RecyclerView 实...

weixin_32691939的博客 1118

UReport2 报表设计器 在线表格

UReport2官网 一、UReport2报表设计器 UReport2是一个开源的可视化报表设计器,功能强大,操作简单,可以实现复杂的报表统计,有各种各样的导出和打印功能,支持导入Excel表格! 1、报表设计器 2、设计一个简单的用户列表展示 二、可编辑表格 扩展了layui的表格,支持多元化数据编辑(单选,多些、日期、下拉联动),开发简单、高效、便捷。有了它就可以轻松开发类似进销存系统的表格录入功能了,用户拿来即用! 三、主从表录......

ejinxian的专栏 2万+

vmware vsphere5---部署vCSA(VMware vCenter Server)附带第二阶段安装报错解决方案

因为这份文档我是边做边写的,遇到问题重新装了好几次所以IP会很乱ESXI主机为192.168.20.10VCSA为192.168.20.7,后台为192.168.20.7:5480后期请自行对应,后面的192.168.20.57请对应192.168.20.7,或根据自己的来。

m0_70212665的博客 5714

Android:TabLayout 当中的tabItem点击事件

本篇文章只含有tabItem的点击事件,其他没有滑动等内容,赶时间及时略过该文 布局 <com.google.android.material.tabs.TabLayout android:layout_width="match_parent" android:layout_height="wrap_content" app:tabRippleColor = "@android:color/transparent" androi

谢桥的博客 3711

电源完整性之Cadence Sigrity Power SI_AC阻抗仿真

之前和大家分享过电源完整性之仿真设计原理链接: [link](https://blog.youkuaiyun.com/weixin_41808082/article/details/117065140?spm=1001.2014.3001.5501).今天接着上一篇文章总结一下电源AC阻抗的的仿真操作流程及一些simulation中的设置参数,用到的时候Cadence Sigrity 中的Power SI组件,下面开始享受仿真的快乐吧: 1.仿真模式选择与文件导入 选择Cadence Sigrity下的Power SI

刘小同学的博客 1万+

EasyUi 关闭一个tab选项卡后,跳到另一个选项卡,并刷新这个选项卡中的数据表格

aa

狼魂之力 624

华为OD机试真题 新系统2026-04-08 C++ 实现【直捣黄龙】

小王在玩一款叫做直捣黄龙的小游戏,在该游戏中他需要从入口位置进入敌营,绕过哨兵的层层封锁,达到敌军司令部实施斩首行动。 敌军阵营是一个n*n的矩阵,入口在坐标(0,n/2),敌军司令部在坐标(n-1,n/2),每个 哨兵警戒以自己为中心的9宫格,一旦被哨兵发现则行动失败。

MISAYAONE的博客 261

Arduino 系列:Arduino Due 系列 (基于 ATSAM3X8E)_(5).电源管理与电压调节

电源管理与电压调节是确保嵌入式系统稳定性和可靠性的关键环节。通过合理选择电源输入方式、使用高效的电压调节器、设计适当的滤波电路和实施动态电源管理,可以有效提高系统的性能和寿命。同时,使用电源调试工具和编写调试代码,可以帮助开发者及时发现和解决问题。希望本文档能为使用 Arduino Due 的开发者提供有用的信息和指导。

2401_87715305的博客 1309

vant3+ts+pinia tab选项卡列表页面点击进详情,详情页返回tab高亮在原位置,刷新高亮默认在第一项

主要实现逻辑就是在vuex里面存一个变量,用来判断是详情还是列表页面在点击详情的时候,把tab存进去在onMounted加载的时候从vuex 里面取出来, 在setup 里面先存0,下面的判断就会走else点击头部左按钮返回的时候给置为true...

qq_42180156的博客 838

手把手教你学PCIE--固件与BIOS配置 - BIOS设置对PCIe性能的影响

本文详细分析了BIOS设置对PCIe性能的影响,并提供了优化建议。通过合理调整链路参数、功耗管理策略和高级功能配置,可以显著提升系统的性能和稳定性。本文将进一步分析BIOS设置如何影响PCIe设备的性能,并提供优化建议。BIOS(或UEFI)是系统启动时的第一个控制层,其设置直接决定了PCIe设备的工作状态和性能表现。BIOS中的功耗管理选项(如C-States、P-States)会影响PCIe链路的低功耗模式(L0s/L1)。MSI/MSI-X中断具有更高的性能和更好的可扩展性,应作为首选方案。

MHD0815的博客 995

fragment里点击tab自动刷新

1.点击tab自动刷新 不要onresume方法里的刷新,要setUserVisibleHint方法里写刷新 //点tab自动刷新 @Override public void setUserVisibleHint(boolean isVisibleToUser) { super.setUserVisibleHint(isVisibleToUser); if (isVisibleToUser ) { if(already_call_srl!=null)already_cal...

q18852548808的博客 323

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

【Android】 banner+tab吸顶+viewpager切换+刷新加载之实现

如图,顶部有轮播图,tab需要吸顶,不同tab对应的条目不同,各tab下的条目存在不同类型,需要支持下拉刷新与上拉加载。天资愚笨,花了一周时间终于实现,特此记录。 项目中刷新加载控件采用SmartRefreshLayout,这次仍然打算采用它,不知道是否冲突。 【tab切换】毫无疑问采用TabLayout+ViewPager实现,难点是【吸顶】,因为自己没有实现过。 google关键词:【and...

weixin_33739523的博客 1331

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Viewpager+Tablayout实现滑动布局并监听tablayout点击事件以及fragment刷新问题。

 viewpager+tablayout都不陌生了。在很多地方都有用到过。这两天碰到个需求要求点击tablayout时出现下拉框选择分类然后动态刷新viewpager的当前界面。 首先对viewpager+tablayout做一个简单用法的总结。 1、在界面布局文件xml中添加 &lt;android.support.design.widget.TabLayout ...

Max_Adrew的博客 1万+

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

微信小程序实现安卓机下拉不刷新,ios下拉刷新操作(自定义底部tab栏在安卓机下拉)

由于自定义底部tab栏在安卓机下拉时会跟随下滑,所以针对这种情况,就产生了一种解决方案,购物袋页面在安卓机下拉时不刷新,ios下拉时刷新。 思路: 1.不用小程序的下拉刷新~真正用的是onPageScroll,基于ios可以下滑时有一个滚动的效果但是安卓机没有这个特点实现的 代码: 1.json 禁止下拉属性 { "usingComponents": { }, "navi...

lindali1115的博客 1120

tab页返回上一页不刷新

今天写了一个tab页面当点击第二屏中菜单然后返回就会刷新显示第一屏体验效果很差。 查了一些方法如下: 方法1:做成单页面,通过url hash或history.pushState来保持当前页面的状态,监听popstate事件 方法2:在页面tab切换的时候的,通过history.replaceState将当前的页面状态保持-将修改页面的URL的,但是不会重新加载页面;当页面返回重新显示的时候,判断...

糖果云专栏 1674

[Android UI界面] tab_Host页面跳转,传值,刷新等问题汇总。

之前做了一个项目是关于Tab_Host的,现在完成了恰逢闲余写份总结,主要涉及里面遇到问题以及解决方案的。 (首先说明这份代码是在eoe 下载的,这里感谢分享的那位朋友,限于我的工程是公司的不能拿出来了,只能那这份原来的代码进行修改贴出来,欢迎拍砖);import android.app.TabActivity; import android.content.Intent; import andr

来啊 快活啊 1917

安卓PullToRefresh自动下拉加载刷新实现

昨天,测试人员提了一个Bug,说是只要来回的点击同一个Tab按钮,加载的数据就会重复,检查代码检查了好长时间也没有发现有啥问题,于是就打断点调试,发现本来是执行的pullToRefreshListView.setRefreshing(); 自以为是执行的刷新操作(其实也就是刷新操作,只不过上拉是刷新,下拉也是刷新,我们做的时候是把上拉刷新改成加载更多了),其实该控件并不能判断出来目前执行的操作是下

momocsdn 4267

Android UI 之 TabLayout动态添加tab实现筛选及自动偏移(全选,单选)

一丶效果展示(代码链接见文末) 二丶概述 1.Android开发,数据的筛选通常由后台处理,网络请求穿不同参数,即可。理论上TabLayout可以实现单选多选的筛选。 2.自动偏移的重要性,1.提醒用户屏幕外有可选项,2.操作简单,体验效果提高。 三丶功能介绍 1.RecyclerView 实现上拉加载下拉刷新 文章参考:http://blog.youkuaiyun.com/dt2

行动者&&职业化 1万+

关于android的tab子页面刷新父页面的tab样式问题

像这个页面,这个整体是个主页面,中间的菜单因是用tabhost塞进去的子页面,我在这个子页面的listview中item的确定按钮点击后,这个页面不动,然后更新主页面的“购物车”tab,如图所示,在购物车tab标签的右上角增加数字 我用的是BadgeView来添加右上角的数字,在确定按钮的点击事件中处理,代码如下 View target = LayoutInflater.from(Vi

beikongsou0150的博客 383

android ,Tabhost,tab 动态刷新,onResume

我的程序是在AppTabMain这个Activity里面创建的tabwidget的,设置了四个选显卡。 现在网络数据通过Handler传递到了AppTabMain这个activity里面,怎么把值更新到指定的选项卡(可以是选项卡2,3,4,)里面的EditText里面呢? 没必要及时更新啊,先保存在父类里,等切换到指定的类时在更新 而且你的Activity不可见时你去更新它很可能出问题

JY_Sharer的专栏 5533

Flutter BottomNavigationBar切换会刷新当前页面解决方

问题描述 BottomNavigationBar是flutter 中最常用的UI组建,刚接触时发现在切换tab 的时候,会刷新当前的所有状态,每个页面都会重新刷新。于是乎,在这里先记录下解决方案。 BottomNavigationBar基本代码 以下Home 是首页,切入三个tab,代码如下: class Home extends StatefulWidget { @...

weixin_30851409的博客 730
上一篇: android中两种上下文的区别
下一篇: android中editText限制输入(小数和整数篇)
Warkey_Song
博客等级 码龄14年 3粉丝 15原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值