How to use View Stub in android

前端 未结 3 597
野趣味
野趣味 2020-12-13 02:07

I want to use ViewStub in android, so please help me. I have created

ViewStub stub = new ViewStub;
View inflated = stub.inflate(); 

How to

3条回答
  •  野趣味
    野趣味 (楼主)
    2020-12-13 02:37

    Here is an example for show/hide and change data of ViewStub at run time

    activity_main.xml

    
    
        

    layout_of_view_stub.xml

    
    
    

    MainActivity.java

    public class MainActivity extends AppCompatActivity {
        private ViewStub viewStub;
        private Button buttonShow;
        private Button buttonHide;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            buttonShow = findViewById(R.id.buttonShow);
            buttonHide = findViewById(R.id.buttonHide);
            buttonShow.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    showViewStub();
                }
            });
    
            buttonHide.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    hideViewStub();
                }
            });
        }
    
        private void showViewStub() {
            if (viewStub == null) {
                viewStub = findViewById(R.id.viewStub);
    
                // If you want to change data of ViewStub at runtime, you can do like this
                View inflatedView = viewStub.inflate();
                TextView textViewInViewStub = inflatedView.findViewById(R.id.textInViewStub);
                textViewInViewStub.setText("ABC");
            }
            viewStub.setVisibility(View.VISIBLE);
        }
    
        private void hideViewStub() {
            if (viewStub == null) {
                return;
            }
            viewStub.setVisibility(View.GONE);
        }
    }
    

提交回复
热议问题