-
结构体的嵌套 自身嵌套 相互嵌套
2018-05-16 00:01:59什么是结构体的嵌套? 在结构体的定义中,结构体的成员又是另外一个结构体的变量。 结构体嵌套的问题有哪些? 结构体的自引用,就是在结构体内部,包含指向自身类型结构体的指针。 结构体的相互引用,就是说在多...什么是结构体的嵌套?
在结构体的定义中,结构体的成员又是另外一个结构体的变量。
结构体嵌套的问题有哪些?
结构体的自引用,就是在结构体内部,包含指向自身类型结构体的指针。
结构体的相互引用,就是说在多个结构体中,都包含指向其他结构体的指针。
结构体应该注意的问题?
结构体定义中可以嵌套其他结构体类型的变量,不可以嵌套自己这个类型的变量。
可以嵌套自己类型的指针。
*********************************自引用结构体******************************
****************************************************************************
不用TYPEDEF——错误的方式:
#include<iostream> using namespace std; struct tag_1{ struct tag_1 A; //A是一个结构体,A的内部还会有一个结构体,以此下>去,无线循环。在内存分配的时候,由于无限的嵌套,无法确定结构体的长度,所>以时非法的。 int value; }; int main() { return 0; }
不用TYPEDEF——正确的方式:
#include<iostream> using namespace std; struct tag_1 { struct tsg_1 *A; //由于指针的长度时确定的(在32位机器上指针长度是4),所以编译器能够确定该 结构体的长度 //这个指针看似指向自身,其实不是,而是执行同一类型的不同结构。 int value; };
用TYPEDEF——错误的方式:
#include<iostream> using namespace std; typedef struct{ int value; NODE *link; }NODE; //使用typedef为结构体创建一个别名NODE。 //但是是错误的,因为类型名的作用域是从语句结尾开始的,而在结构体内部是不>能使用的,因为还没有定义。
*********************************相互引用结构体******************************
*******************************************************************************
用TYPEDEF——错误的方式:
#include<iostream> using namespace std; typedef struct tag_a { B *bp; int value; }A; typedef struct tag_b { A *ap; int value; }B; //错误的,在类型B在定义之前就被引用
用TYPEDEF——正确的方式(“不完全声明”):
#include<iostream> using namespace std; //正确的方式 使用不 完全声明 typedef struct tag_a A; typedef struct tag_b B; struct tag_a { // struct tag_b *bp; B *bp; int value; }; struct tag_b { // struct tag_a *ap; A *ap; int value; };
********************************结构体嵌套的三种正确形式************************
***********************************************************************************
typedef struct tag_1 { int value; struct tag_1 *link; }NODE;
typedef struct tag_1 NODE; struct tag_1 { int value; NODE *link; };
struct tag_1 { int value; struct tag_1 *link; }; typedef struct tag_1 NODE;
结构体自身嵌套时候要注意:
结构体内部定义了一个指向结构体的指针,指针的大小在具体的机器平台和编译器环境中都是已知的(即使不同的平台环境的定义不完全相同)。但是要提醒的是:这个指针看似指向自身,其实不是,而是指向同一类型的不同结构。
链表和树的数据结构就都使用到此技巧。自身的结构体指针指向下一节点或者下一子树的地址。
/* 错误的表示*/ typedef struct //这里是结构体类型的定义 { int value; s_ref_1 *link;//注意这局引用了结构体类型名 }s_ref_1;//ISO C++ 不允许声明无类型的‘s_ref_1’ /* 正确的表示*/ typedef struct s_ref_t //这里是结构体类型定义 和 结构体标签 { int value; struct s_ref_t *link;//注意这句话与上面相同位置的区别,使用了标签 }s_ref_2;
-
scrollview嵌套viewpager嵌套fragment嵌套recyclerview
2018-06-22 18:03:10scrollview嵌套viewpager嵌套fragment嵌套recyclerview 效果图: 问题1: scrollview嵌套viewpager,viewpager不显示的问题 解决方法:给scrollview加上android:fillViewport=”true”属性 ...注意:Scrollview嵌套viewpager这种做法会出现很多很多问题,而且官方不建议在可以滚动的布局里再嵌套可以滚动的布局,所以大家可以优先尝试用别的方案解决需求,实在不行再用这种。
还是有很多坑没解决,播主已经放弃了Ծ‸Ծ
滑动一个fragment会同步滑动另一个,并且当一个fragment的高度变大的时候,viewPager的高度也会变大,就导致从一个高度很大的fragment滑动到另一个高度较小的fragment的时候会看不到布局,尚未解决。
下面的文字大家看看就好,权当是一个借鉴吧,这样很多滑动控件互相嵌套的情况坑实在太多了Ծ‸Ծ
scrollview嵌套viewpager嵌套fragment嵌套recyclerview
效果图:####问题1:
####scrollview嵌套viewpager,viewpager不显示的问题解决方法:给scrollview加上android:fillViewport="true"属性
####问题2:
####viewpager只显示一个屏幕的数据,scrollview没法继续滑动。解决方法:使用自定义的PersonalViewpager,测量子view的高度
PersonalViewpager:
package study.com.scrollrecyclertest; import android.content.Context; import android.support.v4.view.ViewPager; import android.util.AttributeSet; import android.view.MotionEvent; import android.view.View; /** * Created by HONGDA on 2018/6/15. */ public class PersonalViewpager extends ViewPager { //是否可以进行滑动 private boolean canScroll = true;//默认可以滑动 public PersonalViewpager(Context context) { super(context); } public PersonalViewpager(Context context, AttributeSet attrs) { super(context, attrs); } @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { int height = 0; for (int i = 0; i < getChildCount(); i++) { View child = getChildAt(i); child.measure(widthMeasureSpec, MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED)); int h = child.getMeasuredHeight(); if (h > height) height = h; } heightMeasureSpec = MeasureSpec.makeMeasureSpec(height, MeasureSpec.EXACTLY); super.onMeasure(widthMeasureSpec, heightMeasureSpec); } public void setCanScroll(boolean canScroll) { this.canScroll = canScroll; } @Override public boolean onInterceptTouchEvent(MotionEvent ev) { return canScroll; } }
####问题3:viewpager禁止左右滑动
解决方法:使用自定义的PersonalViewpager,调用setCanScroll(false);即可
####问题4,viewpager嵌套了fragment,fragment里有recyclerview,scrollview没法滑动
解决方法:把滑动事件都交给外层的scrollview处理,禁止recyclerview滑动功能
1、设置 recyclerView.setNestedScrollingEnabled(false);//限制recyclerview自身滑动特性,滑动全部靠scrollview完成
2、recyclerview的布局里添加
android:focusableInTouchMode=“true”
android:focusable=“true”<android.support.v7.widget.RecyclerView android:id="@+id/recycler_fragment" android:layout_width="match_parent" android:focusableInTouchMode="true" android:focusable="true" android:layout_height="match_parent" />
3、scrollview嵌套的子布局添加 android:descendantFocusability="blocksDescendants"属性,这个属性可以让viewgroup覆盖子类控件而直接获得焦点,比如你的scrollview嵌套了一个LinearLayout,那么xml里应该这样写:
####问题5:viewpager嵌套了fragment,fragment里有recyclerview,recyclerview加载更多数据的时候,新的数据没显示出来
我们要上拉刷新加载更多数据的时候,不要调用adaptert.notifyItemRangeChanged(length, newStrs.size());而是应该要调用
adapter.notifyDataSetChanged();来让整个页面刷新。####问题6:6、viewpager两个页面数据量不一样的时候,滑动一个页面会对另一个页面有影响
解决方法:需要记录页面的位置,然后计算scrollview的位置,这个要根据具体的业务逻辑处理啦。可以参考抖音的个人主页
下面是我做的一个简单的demo,希望可以帮到大家:
github地址:
github的代码是最新的代码,CSDN资源的代码稍微有点旧了。
GodisGod/studydemo: scrollview嵌套viewpager嵌套recyclerview冲突解决 https://github.com/GodisGod/studydemo
CSDN资源下载:
scrollview嵌套viewpager嵌套fragmetn嵌套recyclerview的demo-CSDN下载 https://download.csdn.net/download/baidu_31093133/10493674
-
iframe标签(页面嵌套)
2019-06-18 08:49:29开发工具与关键技术:VS <iframe> 作者:听民谣的老猫 撰写时间:2019/6/10 18:15 上面两张图是两个不同的页面但是它们的基本框架都是一样,每点击一次左边...我们可以用页面嵌套方法来达到这一要求。页面嵌...开发工具与关键技术:VS <iframe> 作者:听民谣的老猫 撰写时间:2019/6/10 18:15
上面两张图是两个不同的页面但是它们的基本框架都是一样,每点击一次左边的导航栏改变的都是中间的内容区域。也就是说共同的框架都是没有改变的,改变的是中间的内容。
有没有什么方法可以不改变外面的基本框架只改变中间的内容???
我们可以用页面嵌套方法来达到这一要求。页面嵌套的方法有很多种,在这我用的是标签来达到页面嵌套的效果。定义: 标签规定一个内联框架,在当前html中嵌入另一个文档;
的一些常用属性
语法:参数 解析 align 根据周围的文字排列 iframe。 frameBorder 是否显示框架周围的边框。 noResize 框架是否可调整大小 scrolling 框架是否有滚动条。 src 被嵌入html中文档的URL。 实列:
将开始截的图片嵌入内容改成百度首页
可以看出百度首页已经被嵌入我们这个页面了,但是嵌入后页面出现了滚动条,嵌入页面的滚动条影响了用户体验和页面美观所以我们得去除掉这个滚动条。其实就是设置iframe的高度,等于内嵌网页的高度,这样就看不出来滚动条和嵌套痕迹。
自动调节iframe高度Js代码//根据浏览器大小调整iframe高度 reSetSize(); window.onresize = reSetSize; function reSetSize() { var windowsHeight = window.innerHeight; document.getElementById("content").style.height = (windowsHeight-框架顶部高度) + "px"; }
解析:
将你嵌入页面的高度设置成屏幕可视高度减去原框架顶部和底部高度(宽度设置同理)。 -
for循环嵌套的两种用法
2016-10-29 19:09:20主要有两种类型的for循环嵌套,下面来介绍这两种类型循环嵌套的用法以及事例。 一:内外循环独立进行 #include void main() { int i,j; char a[5]="$$$$$"; for(i=0;i;i++) { for(j=0;j;j++) ...本人今后不定期在CSDN上更新博客,大部分内容将会更新在个人博客:www.lijugang.com中!
主要有两种类型的for循环嵌套,下面来介绍这两种类型循环嵌套的用法以及事例。
一:内外循环独立进行
#include<stdio.h> void main() { int i,j; char a[5]="$$$$$"; for(i=0;i<5;i++) { for(j=0;j<5;j++) printf("%c",a[j]); printf("\n"); } }
二:内部循环依赖于外部循环
#include<stdio.h> void main() { int i,j; char a[5]="$$$$$"; for(i=0;i<5;i++) { for(j=0;j<=i;j++) printf("%c",a[j]); printf("\n"); } }
第一种方式中,内部循环进行5次,外部循环也进行5次,相当于外部循环把内部循环的结果打印了5次,为什么呢?因为内部循环的条件是固定的(j<5),每次外部循环,内部循环都要进行5次,效果大家可想而知。第二种方式中,当外部循环进行第一次时,即i=0时,由于内部循环的条件为j<=i,此时0<=0,满足循环条件,在这种方式中,内部循环的条件每次都是变化的。因此,当外部循环进行一次时,内部循环进行打印出数组a[5]中的第一个元素a[1],即打印出一个$。以此类推打印出了a[5]中的所有元素。
以下是两种方式打印的结果:
推荐一个不错的博主,里面有很全面的全栈开发内容,https://how2j.cn/k/control-flow/control-flow-if/271.html?p=149636 -
MySQL嵌套查询详细笔记(子查询)
2017-11-06 18:08:36MySQL嵌套查询(子查询) -
Java中集合的嵌套:嵌套集合、嵌套keySet遍历、嵌套entrySet遍历
2019-07-05 23:45:19一、嵌套集合 1、ArrayList嵌套 ArrayList ArrayList< ArrayList<String> > Collection< ArrayList<Integer> > 2、Map嵌套 ArrayList HashMap<String, ArrayList<Person>> ... -
嵌套事务总结
2018-10-12 23:48:32最近线上发生了一起故障,是关于嵌套事务未回滚的问题,这里记录一下。 发生故障的场景是: 主方法parent()里调child()方法,当child()抛出异常时,parent()和child()均未回滚。背景先介绍到这里,你... -
mybatis嵌套结果和嵌套查询
2020-04-25 22:41:11嵌套结果 是一次查询 然后映射到对应属性 嵌套查询是多次查询 有N+1问题 解决方法就是使用懒加载和嵌套结果 我们经常用的查询也就是嵌套结果的查询 https://www.cnblogs.com/fly-book/p/10405222.html ... -
html中嵌套iframe页面
2018-05-14 14:20:08有时候需要把其他地方的页面嵌套到当前的的网站的某个模块中,就可以使用iframe嵌套 1、不需要登录其他网站的直接嵌套 新建html <!DOCTYPE html> <html lang="en"> &... -
C++循环嵌套 | 常见的嵌套
2020-11-28 14:13:05C++循环的嵌套 循环的嵌套就是,一个循环体内又包含了另一个完整的循环结构;内嵌的循环中还可以嵌套循环,这就是多层循环。 在C++中,while循环、do while循环、for循环都可以互相嵌套,例如以下几种 while语句嵌套... -
方法嵌套调用,在嵌套方法执行结束执行方法嵌套调用
2015-12-09 09:46:37方法嵌套调用,在嵌套方法执行结束执行方法嵌套调用,在嵌套方法执行结束执行,主方法就执行完了,导致错误 -
网页嵌套 网页限制嵌套
2016-07-23 07:38:53我的一个网页想嵌套显示一个银行的网页,比如https://ipcrs.pbccrc.org.cn/page/login/loginreg.jsp 这个网页不让在iframe中显示。我该怎么解决。请大哥大姐给个思路 -
vue路由嵌套,配置children嵌套路由
2018-07-12 17:52:23嵌套路由就是路由里面嵌套他的子路由,可以有自己的路由导航和路由容器(router-link、router-view),通过配置children可实现多层嵌套 //mine组件 <template> <div class="content&... -
LaTeX书写嵌套大括号、嵌套cases、嵌套array的方法
2020-03-23 10:28:39LaTeX中书写嵌套大括号可以使用嵌套cases: $$\begin{cases} A&XXX\\ B&XXX\\ C& \begin{cases} D&XXX\\ E&XXX \end{cases}\\ F&XXX \end{cases}$$ 效果: 也可以... -
python 函数嵌套和嵌套调用
2020-05-19 16:47:58嵌套函数是为函数内部服务的,比如减少代码的重复,想要调用函数,要使用函数名,内函数也一样。如果不用函数名调用内函数,内函数就永远不会执行。 -
ES的嵌套查询和嵌套聚合
2019-04-29 11:17:591.想要实现嵌套查询和嵌套聚合,首先需要在索引里面设置某个属性是嵌套类型(一般是List)-----type=nested 2.API的demo-嵌套查询---(使用场景:需要根据list中的两个字段以and的关系进行查询) // 构造布尔查询... -
scrollview嵌套listview 嵌套HorizontalScrollView嵌套gridview 焦点及卡顿问题
2017-05-20 17:53:34最近项目中用到了scrollview嵌套listview 嵌套HorizontalScrollView嵌套gridview设计,废了九牛二虎之力写好之后就出现各种问题:首先是横向gridview滑动的时候不流畅,卡顿现象。其次是横向gridview滑动之后造成... -
中断嵌套
2018-04-15 18:42:02linux2.4.0内核中断嵌套处理,可能性分析如下: 1,同一中断线:是否可嵌套,取决于ack是否发屏蔽中断线信号给硬件? 可嵌套中断: 场景:[cpu0 A进程 i ii] [cpu1 B进程] ,先i中断执行后执行ii。若有iii,同理... -
Python 嵌套函数
2017-06-28 21:35:37在 Python 中,函数的用法可谓是千变万化,只不过我们平日接触的大多是一些基本用法。函数强大之处当然不止于此,它还有很多高级用法 - 闭包、...这些高级用法都与嵌套函数紧密相关,所以有必要先熟悉一下嵌套函数。 -
网站开发进阶(十)如何将一个html页面嵌套在另一个页面中
2015-11-20 18:52:16如何将一个html页面嵌套在另一个页面中 1.IFrame引入 你会看到一个外部引入的文件,但会发现有一个类似外框的东西将其包围,可使用 2.方式 3.Behavior的download方式 functiononDownloadDone(downDate){ ... -
嵌套函数
2018-03-30 18:17:09Python中一个与众不同的语法就是可以嵌套函数,所谓嵌套,并不像其他语言中的在一个函数中调用另一个函数,而是在定义一个函数的时候,函数体里还能定义另一个函数。 内函数可以访问外函数的作用域,这就是《Python... -
函数可以嵌套调用但不可以嵌套定义
2019-07-19 14:36:06C 程序必须由一个或一个以上的函数组成 函数可以嵌套调用但不可以嵌套定义 -
MySQL子查询 嵌套查询
2018-09-27 20:18:58子查询:嵌套在其他查询中的查询。 有三张表分别如下: customers: 存储顾客信息 orderitems:只存储订单信息,无客户信息 orders:存储订单号和顾客id 注意:一般在子查询中,程序先运行在嵌套在最内... -
Scss中的嵌套规则
2020-05-11 13:59:471. Sass 允许将一套 CSS 样式嵌套进另一套样式中,内层的样式将它外层的选择器作为父选择器 #app { h1 { text-align: center; } } 编译结果 #app h1 { text-align: center; } 避免了重复输入父选择器,... -
MySQL子查询(嵌套查询)
2019-05-10 22:15:31一个查询语句嵌套在另一个查询语句内部的查询 常用操作符:ANY(SOME), ALL, IN, EXISTS 比较运算符:>, >=, <, <=, != 等 创建两个表,表明分别是tb1,tb2,并向其各插入了数据。 1.带ANY... -
Recyclerview嵌套Recyclerview案列
2016-05-27 18:20:43Recyclerview嵌套Recyclerview ,外层列表,内层网格,支持上拉下拉刷新;Recyclerview嵌套Recyclerview ,外层列表,内层网格,支持上拉下拉刷新 -
Iframe页面嵌套
2019-05-15 19:30:53在做项目的时候为了方便经常会用到嵌套标签来嵌套页面。因为一个系统里会有多个大模块,每一个大模块里又有好多个小模块,而每一个小模块又是由页面构建而成。所以,做项目的时候就会在模版里面嵌套内容。在主页面上... -
ListView嵌套ListView 或者RecyclerView嵌套ListView
2017-10-19 10:07:031.ListView嵌套ListView 或者RecyclerView嵌套ListView都只能显示一行,原因是不知ListView的高是多少,如果完全显示嵌套的ListView,则需要修改ListView的测量规则 public class MyListView extends ListView { ... -
js处理页面内部嵌套问题
2017-06-01 17:59:43嵌套 -
页面嵌套
2019-05-17 14:35:14----------------------------------页面嵌套------------------------------------ 网名在有时候做项目的过程中会遇到很多样式,也有很多系统在操作的时候的;会遇到一些大的模块操作,就像这样的 里面有几个大...
-
hadoop自动化运维工具Ambari应用实践
-
21年新接口自动化测试视频postman教程 零基础接口测试
-
云端初识
-
Vue3.x接入Vuex,Vue-router
-
无法修改FPM附件SDA
-
集成学习—AdaBoost、GBDT、XGBT.docx
-
crontab的使用心得
-
java集合
-
运料小车(方案一).smart
-
2021-01-19
-
rider jar包
-
浙大PTA 6-2 多项式求值
-
高效开发之按条件快速拼接List为String
-
Redis数据库入门与使用
-
1013 摆积木
-
易语言开发通达信DLL公式接口
-
SSM天猫仿写。。。。。。。。。。。。。。
-
【数据分析-随到随学】数据分析基础及方法论
-
jq,jquery checkbox选中与不选中的技巧
-
京东Spark自研Remote Shuffle Service在大促中的应用实践