Android任意指定位置动态增删View

我们经常会遇到需要动态增加删除view的情况,

通常使用

 

addView(addView);

方法来动态增加view,但是有个问题,这个方法会将新增的view默认加到布局界面的末尾,

也就是屏幕的最下方。

但是我们可能需要加载到顶端,或者不是最下方的位置,那么怎么实现呢?

大家可以把自己的想法写到留言区互相交流。

我这里想到一个很简单的实现方法,就是在布局文件中你希望动态新增的view的地方写一个空的布局,

假如这个空布局的id是add_test_layout

那么我们在动态新增删除view的时候,直接对这个add_test_layout布局进行操作即可

代码如下:

布局文件:

 


    

    






java代码:

    //增加view
    private void showTestView() {
        if (null == hiddenView) {
            LinearLayout myLayout = findViewById(R.id.add_test_layout); 
            View addView = getLayoutInflater().inflate(R.layout.new_view_layout, myLayout, false); 
            overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);
            myLayout.addView(addView);
        }
    }
	//隐藏view
	private void hidenTestView() {
        hiddenView = findViewById(R.id.new_view); 
        if (null != hiddenView) {
            ViewGroup parent = (ViewGroup) hiddenView.getParent();
            parent.removeView(hiddenView);
            hiddenView=null;
        }
    }

欢迎大家留言交流
 

你可能感兴趣的:(Android)