您的位置:首页 > 其它

安卓控件使用系列31:ViewStub惰性装载控件的使用方法

2015-10-03 22:10 549 查看
ViewStub是安卓中的动态装载控件,作用和include相似,可以加载其他的布局文件。下面我们来介绍一个这个控件的使用方法。

实现的是上面有一个星行,下面是两个按钮,点击按钮用于动态添加布局和动态隐藏布局。

整体思路:新建一个xml文件,添加一个RatingBar控件,在原来的xml文件中添加一个include,指向这个新的xml文件,再添加一个ViewStub控件和二个Button控件;在活动中设置两个按钮的OnClick事件,在其中一个中写入把新建的xml文件中的RatingBar控件绑定到ViewStub控件上,并设置初始·的星数;在另一个中隐藏这个ViewStub控件。

activity_main.xml文件:

<!-- 静态加载布局文件 -->

<include
android:layout_width="wrap_content"
android:layout_height="wrap_content"
layout="@layout/next"
/>

<!-- 动态加载布局文件 -->
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#FFCCDD"
>
<ViewStub
android:id="@+id/stub"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout="@layout/next"
/>
</LinearLayout>
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="动态添加布局" />
<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="动态隐藏布局" />


next.xml文件:

<RatingBar
android:id="@+id/ratingBar1"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
MainActivity.java文件:

private Button button1,button2;
private ViewStub viewStub;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button1=(Button)findViewById(R.id.button1);
button2=(Button)findViewById(R.id.button2);
viewStub=(ViewStub)findViewById(R.id.stub);
button1.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
//表示条填充动态布局
View view=viewStub.inflate();
LinearLayout layout=(LinearLayout)view;
RatingBar bar=(RatingBar)layout.findViewById(R.id.ratingBar1);
bar.setNumStars(3);
}
});

button2.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
viewStub.setVisibility(View.GONE);//隐藏动态加载的布局
}
});
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: