【问题标题】:How to move a View from one ViewGroup to another如何将视图从一个视图组移动到另一个视图组
【发布时间】:2016-04-07 12:00:54
【问题描述】:

我在MainActivity 中有LinearLayout1LinearLayout2Button。当我单击Button 时,我希望它从LinearLayout1 跳转到LinearLayout2。我该怎么做?

【问题讨论】:

  • 查看ViewGroupremoveView()addView() 方法,其中LinearLayout 是一个子类。

标签: android android-layout


【解决方案1】:

你可以这样做:

LinearLayout mLinearLayout1 = (LinearLayout)findViewById(R.id.linearlayout_1);
LinearLayout mLinearLayout2 = (LinearLayout)findViewById(R.id.linearlayout_1);  
Button button1 = (Button) findViewById(R.id.button1);

button1.setOnClickListener(new View.OnClickListener() {  
        @Override  
        public void onClick(View v) {  
         mLinearLayout1.setVisibility(View.GONE);  
         mLinearLayout2.setVisibility(View.VISIBLE);  

      }
    });

【讨论】:

    【解决方案2】:

    特别感谢大家 Mike M 我得到了答案:

    public class MainActivity extends AppCompatActivity {
    private Button button;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        button = (Button) findViewById(R.id.button);
    
       final LinearLayout mLinearLayout1 = (LinearLayout)findViewById(R.id.liner1);
        final LinearLayout mLinearLayout2 = (LinearLayout)findViewById(R.id.liner2);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                mLinearLayout1.removeView(button);
                mLinearLayout2.addView(button);
    
    
                    }
        });
    }
    

    }

    【讨论】:

      【解决方案3】:

      如果您希望在主要活动上直接显示许多不同视图之一(不是线性布局)(可能取决于条件或状态引擎或基于时间的间隔),您可能可以使用 ViewFlipper强>。

      【讨论】:

        【解决方案4】:

        您可以隐藏和显示其中一个,例如:

        LinearLayout mLinearLayout1 = (LinearLayout) findViewById(R.id.linearlayout_1);
        LinearLayout mLinearLayout2 = (LinearLayout) findViewById(R.id.linearlayout_1);
        
        mLinearLayout1.setVisibility(View.GONE);
        mLinearLayout2.setVisibility(View.VISIBLE);
        

        但是如果你想隐藏一些具有不同行为的视图,我建议你使用 Fragments。

        【讨论】:

        • 如果我在该布局中有其他元素怎么办?我希望它只发生在那个特定的按钮上
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-10-15
        • 2013-03-27
        • 1970-01-01
        • 1970-01-01
        • 2021-10-15
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多