文章标题

135人阅读 评论(0) 收藏 举报

介绍

ViewStub 是一个轻量级的View,没有尺寸,不绘制任何东西,因此绘制或者移除时更省时。(ViewStub不可见,大小为0)

优点

实现View的延迟加载,避免资源的浪费,减少渲染时间,在需要的时候才加载View

缺点

ViewStub所要替代的layout文件中不能有<merge>标签
ViewStub在加载完后会被移除,或者说是被加载进来的layout替换掉了
用法

<ViewStub
    android:id="@+id/stub_import"
    android:inflatedId="@+id/panel_import"
    android:layout="@layout/progress_overlay"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="bottom" />

用ViewStub加载layout文件时,可以调用 setVisibility(View.VISIBLE) 或者 inflate()

((ViewStub) findViewById(R.id.stub_import)).setVisibility(View.VISIBLE);
// or
View importPanel = ((ViewStub) findViewById(R.id.stub_import)).inflate();

注意

  • 一旦ViewStub visible/inflated,则ViewStub将从视图框架中移除,其id stub_import 也会失效
  • ViewStub被绘制完成的layout文件取代,并且该layout文件的root view的id是android:inflatedId指定的id panel_import,root view的布局和ViewStub视图的布局保持一致
<!-- layout_viewstub.xml 要延迟加载的view -->
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:id="@+id/layout_viewstub_old"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="5dp"
        android:background="@android:color/darker_gray"
        android:padding="5dp"
        android:text="This is the layout instead of ViewStub view."/>

</LinearLayout>

<!-- act_test_viewstub.xml -->
<?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:gravity="center_horizontal"
    android:orientation="vertical">

    <TextView
        android:id="@+id/act_test_viewstub_tv_show"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="5dp"
        android:background="@android:color/darker_gray"
        android:padding="5dp"
        android:text="Show ViewStub"/>

    <ViewStub
        android:id="@+id/act_test_viewstub_viewstub"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:inflatedId="@+id/act_layout_viewstub_new"
        android:layout="@layout/layout_viewstub"/>

    <!--<include-->
        <!--android:layout_width="wrap_content"-->
        <!--android:layout_height="wrap_content"-->
        <!--layout="@layout/layout_viewstub"/>-->

</LinearLayout>

public class ViewStubTestActivity extends FragmentActivity {
    private static final String TAG = "test_viewstub";
    protected ViewStub mViewStub;

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.act_test_viewstub);
        mViewStub = (ViewStub) findViewById(R.id.act_test_viewstub_viewstub);

        Log.e(TAG, "viewstub: " + findViewById(R.id.act_test_viewstub_viewstub));
        Log.e(TAG, "layout: " + findViewById(R.id.act_layout_viewstub_new));

        findViewById(R.id.act_test_viewstub_tv_show).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                View layoutView;
//                mViewStub.setVisibility(View.VISIBLE);
                layoutView = mViewStub.inflate();

                Log.e(TAG, "mViewStub: " + mViewStub);
                // ViewStub在visible/inflated后会被移除,所以此处为null
                Log.e(TAG, "viewstub: " + findViewById(R.id.act_test_viewstub_viewstub));
//                layoutView = findViewById(R.id.act_layout_viewstub_new);
                Log.e(TAG, "layoutView equals finviewbyid(layout): " +
                        layoutView.equals(findViewById(R.id.act_layout_viewstub_new)));
                Log.e(TAG, "layout: " + layoutView);

                if (layoutView != null) {
                    // layoutView的root view id 是mViewStub inflatedId指定的ID
                    if (layoutView.getId() == R.id.act_layout_viewstub_new) {
                        Log.e(TAG, "layout root id is act_layout_viewstub_new");
                    } else if (layoutView.getId() == R.id.layout_viewstub_old) {
                        Log.e(TAG, "layout root id is layout_viewstub_old");
                    } else {
                        Log.e(TAG, "layout root id is anyone : " + layoutView.getId());
                    }

                    // layoutView的root view布局 和mViewStub的布局保持一致
                    int width = layoutView.getLayoutParams().width;
                    if (width == ViewGroup.LayoutParams.MATCH_PARENT) {
                        Log.e(TAG, "layout width is MATCH_PARENT");
                    } else if (width == ViewGroup.LayoutParams.WRAP_CONTENT) {
                        Log.e(TAG, "layout width is WRAP_CONTENT");
                    } else {
                        Log.e(TAG, "layout width is anyone : " + width);
                    }
                }
            }
        });

    }
}

这里写图片描述

查看评论

wordpress 通过the_title()和get_the_title函数获取文章标题

the_title() 输出或返回当前文章标题。此标签用在主循环里。如果此文章是受密码保护的或者是私有的, 就会在文章标题前标记上"Protected:"或者"Private:"字样。 用法:...
  • xuplus
  • xuplus
  • 2014-08-25 09:31:22
  • 4003

wordpress 修改博客文章标题字体大小

运维wordpress过程中,遇到一个问题,博客文章的字体太大,却总是无法修改成功。 按照网络资料,修改h2对应的font-size的值,更新后却没有生效。这个问题折腾了好久让我头疼不已。用Chro...
  • dreamstone_xiaoqw
  • dreamstone_xiaoqw
  • 2017-09-05 14:11:36
  • 922

文章标题测试

Command Line:"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(F...
  • xietinghmily
  • xietinghmily
  • 2016-03-30 14:55:44
  • 455

论一篇文章标题的重要性

先看看几张图:两三天获1百多万的阅读量再看看文章的内容小伙伴们发现了什么?不旦文章内容要写的好,而且标题一定要好啊!!! 我写了100多篇文章也没有这个阅读量啊!!! 是不是也要做标题党了!!!...
  • foryouslgme
  • foryouslgme
  • 2016-11-29 09:59:42
  • 414

修改DEDECMS文章标题长度,解决DEDECMS文章标题显示不全

在用dede调用列表标题出来的时候,会发现标题文字字数显示不完全,那是因为dede默认标题出来长度是30个字符,为了让标题显示完整,要做以下修改!1、进入后台–系统–系统设置–系统基本参数–其他选项–...
  • yxwmzouzou
  • yxwmzouzou
  • 2015-04-29 11:25:57
  • 10731

织梦首页调用文章标题和摘要

【首页调用文章标题和摘要】 显示效果: 代码如下: {dede:arclist typeid=2 titlelen='30'infolen='150' orderby='pubdat...
  • cctv1937
  • cctv1937
  • 2015-07-01 17:30:32
  • 4327

织梦列表页调用文章标题和摘要

【列表页调用文章标题和摘要】 显示效果: 代码如下: {dede: list titlelen='30' infolen='150'orderby='pubdate' limit=”...
  • cctv1937
  • cctv1937
  • 2015-07-01 17:33:34
  • 4296

文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题

文章正文文章正文文章正文文章正文文章正文文章正文文章正文文章正文文章正文文章正文文章正文文章正文文章正文文章正文文章正文文章正文文章正文文章正文文章正文文章正文文章正    文文章正文文章正文文章正文...
  • coolhomess
  • coolhomess
  • 2008-11-03 10:14:00
  • 100

文章列表中文章标题过长的做法

ul{ width: 200px; border: 1px solid #000; border-radius: 4px; margin: 50px auto; padding-l...
  • u010520692
  • u010520692
  • 2015-11-17 19:25:56
  • 547

新媒体文章标题怎么写?

目前从事新媒体运营两年,也写过几篇爆款文章,在此总结一些写标题的方法。   在写实操的干货前,我想先介绍两个概念:道和术。   道家学说中说:道为术之灵,术为道之体;以道统术,以术得道。 ...
  • qq_32506555
  • qq_32506555
  • 2017-02-15 13:15:05
  • 365
    个人资料
    持之以恒
    等级:
    访问量: 2万+
    积分: 463
    排名: 27万+
    博客专栏
    最新评论
    测试
    测试