android动态添加view

动态添加一个view。

首先,搞清楚是哪个view(子view),要添加到哪个view(父view)中;其次,子view的属性怎么设置;这两个问题明白了,就容易了。

举个例子:比如要在一个LinearLayout中添加一个Button,  子view是Button,父view是LinearLayout。 子view的属性就是通过LayoutParams来设置的,注意是LinearLayout.LayoutParams,因为子view的高度,宽度这些都是针对父view的,要告诉父view自己要占用多大空间,所以是LinearLayout(原来总是会用子view的LayoutParams来设置,错误)

public class MyActivity extends Activity {
    private Context mContext;
    private LinearLayout mLinearLayout;
    private LinearLayout.LayoutParams mLayoutParams;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        mContext = this;
        mLinearLayout = (LinearLayout)findViewById(R.id.parent_view);
        mLayoutParams = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
        Button button = new Button(mContext);
        button.setText("添加button");
        mLinearLayout.addView(button, mLayoutParams);
    }
}
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:orientation="vertical"
              android:layout_width="fill_parent"
              android:layout_height="fill_parent"
        >
    <LinearLayout
            android:id="@+id/parent_view"
            android:orientation="vertical"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"/>
</LinearLayout>

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-11-03 22:25:35

android动态添加view的相关文章

Android在布局中动态添加view的两种方法

一.说明 添加视图文件的时候有两种方式:1.通过在xml文件定义layout:2.java代码编写 二.前言说明 1.构造xml文件 2.LayoutInflater 提到addview,首先要了解一下LayoutInflater类.这个类最主要的功能就是实现将xml表述的layout转化为View的功能.为了便于理解,我们可以将它与findViewById()作一比较,二者都是实例化某一对象,不同的是findViewById()是找xml布局文件下的具体widget控件实例化,而LayoutI

android 动态添加控件并实现每个子控件的点击事件

需求:我们要点击进入一家店铺,根据不同的店铺,显示不同条数的子条目 如:消毒间,洗菜间等...这些都是或多或少的,所以需要动态添加: 首先自定义View(linearLayout): package cn.qust.fang.widget; import io.vov.vitamio.MediaPlayer; import io.vov.vitamio.widget.MediaController; import io.vov.vitamio.widget.VideoView; import a

Android动态添加布局

//1.利用LayoutInflater的inflate动态加载XML mLinearLayout = (LinearLayout)findViewById(R.id.LinearLayout_ID); LayoutInflater layoutInflater = LayoutInflater.from(context); View view = layoutInflater.inflate(resource--需要加载的XML, null); XML:resource = R.layout.

Android动态添加Fragment

Android动态添加Fragment 效果图如下: 项目结构图如下: Fragment1: package com.demo.dongtaifragment; import android.app.Fragment; import android.os.Bundle; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.view.LayoutI

微信小程序之一:动态添加view(view包含picker,input)

<view wx:for="{{array}}" wx:key="this" class="borderContainer"> <view class="borderContainer1"> <view class="firstBorder"> <view class="firstBorderInput"> <input maxlen

Android中动态添加View的两种方法

一.使用xml的方式: 1.LayoutInflater: 这个类可以把xml表述的Layout解析为View,从而可以使addView()方法添加View. 2.LayoutInflater与findViewById的区别: 两者都是实例化某一个对象,不同的是findViewById是通过找xml布局文件下的一个具体的widget控件进行实例化,而LayoutInflater是找res/layout 下的xml布局文件来实例化的. 3.使用方法: LayoutInflater inflater

Android 动态添加Spinner(.java文件内实现) 实现 改变spinner 内文字属性

动态添加spinner 控件 Spinner s = new Spinner(this); String []items={"自己定义的要显示的数组"}; my_SpinnerAdapter array_adapter =new my_SpinnerAdapter(this, android.R.layout.simple_spinner_item, items); array_adapter .setDropDownViewResource(android.R.layout.simp

Android动态添加和移除布局

1 package com.hyang.administrator.studentproject; 2 3 import android.os.Bundle; 4 import android.support.v7.app.AppCompatActivity; 5 import android.view.LayoutInflater; 6 import android.view.View; 7 import android.widget.Button; 8 import android.widg

Android 动态添加图片 换行

<strong>近在项目中用到动态添加图片,然后换行的实现.刚开始想用GridView,但是没用,什么原因到是忘了.下面我记录一下我的实现方式.</strong> <strong> </strong> 看代码xml: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.andro