`
Kinphoo
  • 浏览: 9077 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

删除布局

阅读更多
布局的layout文件内容:
----------------------------------------------------------------------------------
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android=""
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent" android:id="@+id/linearlayout">


<LinearLayout android:id="@+id/LinearLayout01"
android:layout_width="wrap_content" android:layout_height="wrap_content">
<Button android:layout_height="wrap_content" android:id="@+id/add"
  android:text="Add" android:layout_width="100px"></Button>
<Button android:layout_height="wrap_content"
  android:layout_width="100px" android:text="Remove" android:id="@+id/remove"></Button>
</LinearLayout>
<TextView android:id="@+id/TextView01" android:text="This is textView."
android:layout_width="fill_parent" android:gravity="center"
android:layout_height="50px"></TextView>

</LinearLayout>
----------------------------------------------------------------------------------

对应Activity的内容:
----------------------------------------------------------------------------------
package com.foxconn.dialog;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup.LayoutParams;
import android.widget.Button;
import android.widget.LinearLayout;

public class DialogTest extends Activity implements OnClickListener {

    private Button add_btn, remove_btn;
    private LinearLayout linearLayout;
    private int index = 0;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        findViews();
        register();
    }

    private void register() {
        add_btn.setOnClickListener(this);
        remove_btn.setOnClickListener(this);
    }

    private void findViews() {
        add_btn = (Button) findViewById(R.id.add);
        remove_btn = (Button) findViewById(R.id.remove);
        linearLayout = (LinearLayout) findViewById(R.id.linearlayout);
    }

    protected View createView() {
        Button btn = new Button(this);
        btn.setId(index++);
        btn.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
        btn.setText("aaaaaa" + index);
        return btn;
    }

    private void removeView() {
        //获取linearlayout子view的个数
        int count = linearLayout.getChildCount();
        //研究整个LAYOUT布局,第0位的是含add和remove两个button的layout
        //第count-1个是那个文字被置中的textview
        //因此,在remove的时候,只能操作的是0<location<count-1这个范围的
        //在执行每次remove时,我们从count-2的位置即textview上面的那个控件开始删除~
        if (count - 2 > 0) {
            //count-2>0用来判断当前linearlayout子view数多于2个,即还有我们点add增加的button
            linearLayout.removeViewAt(count - 2);
        }
    }

    public void onClick(View v) {
        switch (v.getId()) {
        case R.id.add:
            linearLayout.addView(createView(), 1);
            break;
        case R.id.remove:
            removeView();
            break;
        default:
            break;
        }
    }
}
分享到:
评论

相关推荐

    android 程序中动态添加删除控件或布局

    在Android应用程序开发中,动态添加和删除控件或布局是一项常用且重要的技能。这使得我们的应用能够根据用户交互或者特定条件灵活地改变界面。本文将深入探讨如何在Android程序中实现这一功能,以及如何设置控件的...

    ArcGIS教程:在页面布局中处理数据框

    ### ArcGIS教程:在页面布局中处理数据框 #### 知识点一:理解布局视图与数据视图的区别 在ArcGIS软件中,布局视图(Layout View)与数据视图(Data View)是两种不同的操作模式。布局视图主要用于处理页面上的...

    Qt动态控件生成并布局

    Qt动态控件生成并布局Qt动态控件生成并布局Qt动态控件生成并布局Qt动态控件生成并布局Qt动态控件生成并布局Qt动态控件生成并布局Qt动态控件生成并布局Qt动态控件生成并布局Qt动态控件生成并布局Qt动态控件生成并布局...

    QT布局:实现动态布局

    此外,QT还提供了`QLayout`类的一些方法,如`addWidget()`, `addStretch()`, `removeWidget()`等,用于在布局中添加、删除或插入控件。`addStretch()`方法特别有用,它可以添加一个“伸展”项,使布局有更多的空间可...

    android 用java动态设置布局(增添删除修改布局)

    XML对开发者来说十分的方便,不仅使用起来简单,而且能够及时调试,修改界面之后马上能看到效果,...笔者认为,新手索要掌握的java动态设置布局主要有两点,一方面是对布局的属性进行修改,另一方面是增添和删除控件。

    4. 布局管理1

    当不再需要布局时,应使用`deleteLater()`方法安全地删除布局,防止内存泄漏。 总结起来,布局管理是Qt GUI开发中不可或缺的一部分,它使得开发者可以轻松创建适应性强、美观的用户界面。理解并熟练掌握各种布局...

    android 界面布局开发实例

    6. **动态添加和删除布局**:在运行时,可以通过Java代码动态添加或删除布局元素。这对于创建可变的或者根据用户行为改变的界面非常有用。 7. **数据绑定**:使用Data Binding库,可以将数据直接绑定到UI元素,简化...

    winform VS窗口布局的框架 灵活拖拽布局

    - 使用控件的Visible属性控制显示和隐藏,而非删除和重新创建,以保持状态和提高性能。 通过理解并掌握DockPanel Suite的这些特点和使用技巧,开发者能够构建出更加灵活、用户友好的Winform应用程序。无论是简单的...

    Android 动画之布局动画

    布局动画(Layout Animation)是Android系统提供的一种在添加或删除视图时触发的动画效果,能够使界面动态地展示变化,增加应用的吸引力。本文将深入探讨Android布局动画的原理、使用方法以及如何通过代码实现。 一...

    SAP 特定用户布局

    如果删除此权限对象,用户将失去设置特定用户布局的能力,除非同时赋予他们 S_GUI 权限,因为 S_GUI 是 SAP GUI 的基础权限,包含基本的导出功能,如 Excel 导出。 2. **S_ALV_LAYR**:这个权限对象允许管理员针对...

    【QT】10 界面布局文章代码

    // 删除布局对象,防止内存泄漏 ``` 通过以上介绍,我们可以了解到QT界面布局的强大之处,它使得开发者可以方便地组织和调整控件,创建出美观且用户友好的界面。在实际项目中,根据需求选择合适的布局策略,结合...

    Android 用RecyclerView实现的流式布局,一款针对可拖动Tag的布局

    网上很多流式布局的列子,大部分都不能满足需求,大部分都不能拖动,有的可以拖动但是都是GridView式布局所以不能满足流式布局的基本要求,所以自己封装一个可删除,可添加,长按可以拖动流式布局。 ——————...

    Android-StreamList横向流式布局点击删除

    总结,实现“StreamList横向流式布局点击删除”的功能需要理解Android布局系统,熟练掌握自定义ViewGroup、Adapter以及事件监听机制。通过以上步骤,我们可以创建一个高效的、具有删除功能的流式布局,提升应用的...

    QtFlowlayout Qt流式布局器

    这个库的主要目的是处理那些在大小和数量上变化不定的控件,例如在一个应用中,用户可能需要动态添加或删除控件,而QtFlowlayout能够优雅地适应这种需求,实现类似瀑布流的效果。 在Qt框架中,通常使用QLayout来...

    android 布局

    此外,Android提供了多种方法来动态添加或删除布局中的控件,以及改变控件的属性,例如使用`findViewById()`获取控件实例,然后调用其方法或修改属性。 总的来说,理解并熟练掌握Android布局是开发高质量应用程序的...

    swift-MCUIViewLayout通过UIView添加的类别可轻松构建布局

    3. **灵活性**:`MCUIViewLayout`允许你在运行时动态地添加、修改或删除布局规则。这使得它在处理响应式设计或不同屏幕尺寸时特别有用。 4. **性能优化**:由于`MCUIViewLayout`是在UIKit的布局系统之上构建的,它...

    AutoCAD 2014中文版完全自学视频教程下载第16章 布局选项卡.zip

    1. **创建和管理布局**:学习如何新建、重命名和删除布局选项卡,理解布局模板的作用,以及如何自定义布局设置以适应不同的打印需求。 2. **布局空间与模型空间的转换**:了解如何在布局和模型空间之间切换,以及...

    Qt代码布局原理

    Qt的布局系统允许我们在运行时动态调整布局,如添加、删除或移动控件。这种灵活性对于响应式设计至关重要,尤其是在跨平台的应用程序中。 8. 布局和信号与槽: 布局与Qt的信号与槽机制紧密相连。当窗口大小改变...

    Qt FlowLayout布局

    Qt FlowLayout布局是一种在Qt应用开发中用于组织控件的自定义布局管理器。与标准的Qt布局(如QVBoxLayout、QHBoxLayout和QGridLayout)不同,FlowLayout允许控件按照特定的方向(水平或垂直)流式排列,当空间不足时...

    android框架布局demo

    6. **Android的布局动画**:可以为布局的添加、删除或改变提供动画效果,增强用户体验。 7. **性能优化**:避免过度绘制和深度嵌套的布局,使用`ViewStub`减少未使用布局的加载,使用`LayoutInflater`进行视图复用...

Global site tag (gtag.js) - Google Analytics