首页
学习
活动
专区
圈层
工具
发布
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Android Fragment应用实战

    // 当点击了联系人tab时,选中第2个tab             setTabSelection(1);   break;   case R.id.news_layout:   // 当点击了动态...tab时,选中第3个tab             setTabSelection(2);   break;   case R.id.setting_layout:   // 当点击了设置tab...这里注意一个细节,我们添加Fragment的时候并没有使用replace()方法,而是会先判断一下该Fragment是否为空,如果是空的则调用add()方法添加一个进来,如果不是空的则直接调用show(...onClick()方法中的逻辑判断非常简单,当点击了消息标签时就会选中第1个tab项,点击联系人标签时就会选中第2个tab项,点击动态标签时就会选中第3个tab项,点击设置标签时就会选中第4个tab项。...另外,这个Tab界面即使在横屏的情况下也有不错的适用性哦,如下图所示: ? 这样,我们就成功使用Fragment编写出了和TabHost一样的效果。

    1.3K100

    关于activitygroup过时,用frament替换操作

    :   // 当点击了联系人tab时,选中第2个tab             setTabSelection(1);   break;   case R.id.news_layout:...   // 当点击了动态tab时,选中第3个tab             setTabSelection(2);   break;   case R.id.setting_layout...这里注意一个细节,我们添加Fragment的时候并没有使用replace()方法,而是会先判断一下该Fragment是否为空,如果是空的则调用add()方法添加一个进来,如果不是空的则直接调用show(...onClick()方法中的逻辑判断非常简单,当点击了消息标签时就会选中第1个tab项,点击联系人标签时就会选中第2个tab项,点击动态标签时就会选中第3个tab项,点击设置标签时就会选中第4个tab项。...另外,这个Tab界面即使在横屏的情况下也有不错的适用性哦,如下图所示: ? 这样,我们就成功使用Fragment编写出了和TabHost一样的效果。

    3.4K70

    Android Fragment应用实战,使用碎片向ActivityGroup说再见

    : // 当点击了消息tab时,选中第1个tab setTabSelection(0); break; case R.id.contacts_layout: // 当点击了联系人...tab时,选中第2个tab setTabSelection(1); break; case R.id.news_layout: // 当点击了动态tab时,选中第3个tab...这里注意一个细节,我们添加Fragment的时候并没有使用replace()方法,而是会先判断一下该Fragment是否为空,如果是空的则调用add()方法添加一个进来,如果不是空的则直接调用show(...onClick()方法中的逻辑判断非常简单,当点击了消息标签时就会选中第1个tab项,点击联系人标签时就会选中第2个tab项,点击动态标签时就会选中第3个tab项,点击设置标签时就会选中第4个tab项。...另外,这个Tab界面即使在横屏的情况下也有不错的适用性哦,如下图所示: ? 这样,我们就成功使用Fragment编写出了和TabHost一样的效果。

    1.2K100

    再看LayoutInflater,这次你可能又会有新的认识

    可能即使不少做过多年Android开发的程序员也未必能解释得清楚。 而这段代码在我们使用RecyclerView,或者使用Fragment时都是一定会用到的。...但是这些场景都比较少见,因此大多数情况下,我们在使用LayoutInflater的inflate()方法时都是要指定父布局的。...当第二个参数传入null时,第三个参数就没有意义了,因此可以不用指定。...而我们因为在使用LayoutInflater加载button_layout.xml这个布局时并没有为它指定父布局,因此这里layout_width和layout_height属性就都失去了作用。...所以在刚才的代码当中,我们一开始在inflate()方法的第三个参数中传入false,那么button_layout.xml布局是不会被添加到mainLayout当中的,我们后面就可以手动调用addView

    73500

    ViewPager快速实现引导页

    当用手指滑动翻页时,手指按下去的时候会触发这个方法,state值为1,手指抬起时,如果发生了滑动(即使很小),这个值会变为2,然后最后变为0 。总共执行这个方法三次。...一种特殊情况是手指按下去以后一点滑动也没有发生,这个时候只会调用这个方法两次,state值分别是1、0 。当setCurrentItem翻页时,会执行这个方法两次,state值分别为2 、0 。...getItemPosition (Object object):当宿主视图尝试判断一项的位置是否改变时调用。...继续使用WidgetSample工程的advancedviewsample模块,在src/main/res/layout/目录下创建viewpager_layout.xml文件,在其中填充如下代码片段:..., null, false)); mPageList.add(inflater.inflate(R.layout.viewpager_page2, null, false));

    1.6K70

    从一个Bug深入WindowInsets 的传递机制演化

    insets 会导致布局异常; 我的预设,使用用 post {} 包裹设置逻辑是对的,但在 Android 8 上仍然可能出现 View 不重新 layout 或 requestLayout 无效的情况...; 设置 isVisible = true 其实底层调用了 View.setVisibility(View.VISIBLE),但这个 View 如果 layout 未完成或区域为 0x0,它不会显示;...; 导致后续将 View 设置为 VISIBLE 时,它不会自动收到 Insets,即使它应该需要。...request layout 和重新分发 WindowInsetsController 提供完整动画行为 可以通过滑动触发系统栏显示/隐藏,保证时序正确 所以 Android 10+ 可以保证即使在...或 draw 阶段位置错误(比如被导航栏挡住),或者尺寸为 0 会发现 “设置了 VISIBLE,但没显示出来” 解决方案: 初始化沉浸式图片展示状态时手动调用【window.decorView.requestApplyInsets

    16810

    实践 | Google IO 应用是如何适配大尺寸屏幕 UI 的?

    } ... } 小贴士: 即使您不需要数据绑定的所有功能,您仍然可以使用 视图绑定 来为您的布局生成绑定类,这样就能避免调用 findViewById 了。...当您在搜索时,可以选择不同的标签来过滤需要显示的搜索结果,我们也会把当前生效的过滤标签显示在以下两个位置之一: 窄模式时位于搜索文本框下方,宽模式时位于搜索文本框的后面。...可能有些反直觉的是,当平板电脑横屏时属于窄尺寸模式,而当其竖屏使用时属于宽尺寸模式。...△ 平板横屏时的搜索应用栏 (窄模式) △ 平板竖屏时的搜索应用栏 (宽模式) 此前,我们通过在搜索 Fragment 的视图层次中的应用栏部分使用 标签,并提供两种不同版本的布局来实现此功能...当 UI 元素拉伸过度、相距过远或是过于密集时,往往难以传达信息,触控元素也变得难以辨识,并导致应用的可用性受到影响。

    2.5K20

    Android setContentView流程

    mFactory2 不为空,就用 factory2 来创建view,否则就返回 view为null 当继承Activity时,并没有默认设置 factory2,当继承 AppCompatActivity...); } } 当调用requestWindowFeature,设置的代码如下,其中使用的mLocalFeatures这个: public boolean requestFeature(int featureId...= 0; } 当调用supportRequestWindowFeature,设置的代码如下,使用的mWindowNoTitle,标志位改变了 @Override public boolean requestWindowFeature...#createViewFromTag 方法时,其中的 tryCreateView 方法会使用到factory2 当factory2不为空时,就会用factory2去创建View,这个view是把...,attachToRoot为false,会获取到属性 3)当root为空,attachToRoot为false,会直接return,属性没有获取 public View inflate(XmlPullParser

    88030

    这是一份Android全面&详细的-Webview使用攻略

    作用 显示和渲染Web页面 直接使用html文件(网络上或本地assets中)作布局 可和JavaScript交互调用 WebView控件功能强大,除了具有一般View的属性和设置外,还可以对url请求...webView.onPause(); //当应用程序(存在webview)被切换到后台时,这个方法不仅仅针对当前的webview而是全局的全应用程序的webview //它会暂停所有webview的layout...就必须销毁Webview //但是注意:webview调用destory时,webview仍绑定在Activity上 //这是由于自定义webview构建时传入了该Activity的context对象...复写shouldOverrideUrlLoading()方法,使得打开网页时不调用系统浏览器, 而是在本WebView中显示 webView.setWebViewClient(new WebViewClient...) .show(); // 返回布尔值:判断点击时确认还是取消 // true表示点击了确认;false表示点击了取消; return true; } 常见方法5: onJsPrompt

    5.8K20

    Android基础:Fragment,看这篇就够了 ( 下 )

    懒加载 懒加载主要用于ViewPager且每页是Fragment的情况,场景为微信主界面,底部有4个tab,当滑到另一个tab时,先显示”正在加载”,过一会才会显示正常界面。...懒加载主要依赖Fragment的setUserVisibleHint(boolean isVisible)方法,当Fragment变为可见时,会调用etUserVisibleHint(true);当Fragment...变为不可见时,会调用setUserVisibleHint(false),且该方法调用时机: onAttach()之前,调用setUserVisibleHint(false)。...onCreateView()之前,如果该界面为当前页,则调用setUserVisibleHint(true),否则调用setUserVisibleHint(false)。...界面变为可见时,调用setUserVisibleHint(true)。 界面变为不可见时,调用setUserVisibleHint(false)。

    2.2K00

    Android:最全面的 Webview 详解

    作用 显示和渲染Web页面 直接使用html文件(网络上或本地assets中)作布局 可和JavaScript交互调用 WebView控件功能强大,除了具有一般View的属性和设置外,还可以对url请求...webView.onPause(); //当应用程序(存在webview)被切换到后台时,这个方法不仅仅针对当前的webview而是全局的全应用程序的webview //它会暂停所有webview的layout...就必须销毁Webview //但是注意:webview调用destory时,webview仍绑定在Activity上 //这是由于自定义webview构建时传入了该Activity的context对象...若为false,则该WebView不可缩放 webSettings.setDisplayZoomControls(false); //隐藏原生的缩放控件 //其他细节操作 webSettings.setCacheMode...复写shouldOverrideUrlLoading()方法,使得打开网页时不调用系统浏览器, 而是在本WebView中显示 webView.setWebViewClient(new WebViewClient

    5.2K20

    Carson带你学Android:最全面的Webview使用详解

    作用 显示和渲染Web页面 直接使用html文件(网络上或本地assets中)作布局 可和JavaScript交互调用 WebView控件功能强大,除了具有一般View的属性和设置外,还可以对url请求...webView.onPause(); //当应用程序(存在webview)被切换到后台时,这个方法不仅仅针对当前的webview而是全局的全应用程序的webview //它会暂停所有webview的layout...就必须销毁Webview //但是注意:webview调用destory时,webview仍绑定在Activity上 //这是由于自定义webview构建时传入了该Activity的context对象...若为false,则该WebView不可缩放 webSettings.setDisplayZoomControls(false); //隐藏原生的缩放控件 //其他细节操作 webSettings.setCacheMode...复写shouldOverrideUrlLoading()方法,使得打开网页时不调用系统浏览器, 而是在本WebView中显示 webView.setWebViewClient(new WebViewClient

    1.9K40
    领券