Breaking

Wednesday 17 July 2019

Android ViewStub | Adroid Tutorial | ViewStub

Android ViewStub

A ViewStub is a zero-sized imperceptible View which is utilized to stack "design asset" at runtime. ViewStub is a zero measurement View, so you won't see anything on the format pallete.

To make parent asset unmistakable, expand() technique is summoned. To make ViewStub obvious or imperceptible, setVisibility(int) strategy is summoned. The View.VISIBLE steady is utilized for making ViewStub obvious and View.GONE consistent is utilized for imperceptible.

Example of ViewStub

How about we make a case of ViewStub View that presentations and conceals an ImageView (picture) made in another design (my_layout.xml) record.

Activity_main.xml


    <?xml version="1.0" encoding="utf-8"?> 
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
        xmlns:tools="http://schemas.android.com/tools" 
        android:layout_width="match_parent" 
        android:layout_height="match_parent" 
        android:paddingBottom="@dimen/activity_vertical_margin" 
        android:paddingLeft="@dimen/activity_horizontal_margin" 
        android:paddingRight="@dimen/activity_horizontal_margin" 
        android:paddingTop="@dimen/activity_vertical_margin" 
        tools:context="com.example.test.viewstubexample.MainActivity"> 
                    
        <ViewStub 
            android:layout_width="wrap_content" 
            android:layout_height="wrap_content" 
            android:id="@+id/viewStub" 
            android:layout_marginLeft="120dp" 
            android:layout="@layout/my_layout" 
            android:layout_alignParentTop="true" /> 
     
        <Button 
            android:layout_width="wrap_content" 
            android:layout_height="wrap_content" 
            android:text="Show" 
            android:id="@+id/show" 
            android:layout_alignParentBottom="true" 
            android:layout_alignParentLeft="true" 
            android:layout_alignParentStart="true" 
            android:layout_marginLeft="65dp" 
            android:layout_marginStart="65dp" /> 
     
        <Button 
            android:layout_width="wrap_content" 
            android:layout_height="wrap_content" 
            android:text="Hide" 
            android:id="@+id/hide" 
            android:layout_alignParentBottom="true" 
            android:layout_toRightOf="@+id/show" 
            android:layout_toEndOf="@+id/show" 
            android:layout_marginLeft="51dp" 
            android:layout_marginStart="51dp" /> 
     
    </RelativeLayout> 


My_layout.xml


<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 
 
    <ImageView 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:id="@+id/imageView" 
        android:background="@drawable/image" 
        /> 
 
</LinearLayout>


File :- MainActivity.java


package com.example.android.viewstubexample; 
 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.View; 
import android.view.ViewStub; 
import android.widget.Button; 
 
public class MainActivity extends AppCompatActivity { 
    ViewStub viewStub; 
    Button show,hide; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.activity_main); 
 
        show=(Button)findViewById(R.id.show); 
        hide=(Button)findViewById(R.id.hide); 
        viewStub=(ViewStub)findViewById(R.id.viewStub); 
        viewStub.inflate(); 
 
        show.setOnClickListener(new View.OnClickListener() { 
            @Override 
            public void onClick(View v) { 
                viewStub.setVisibility(View.VISIBLE); 
            } 
        }); 
        hide.setOnClickListener(new View.OnClickListener() { 
            @Override 
            public void onClick(View v) { 
                viewStub.setVisibility(View.GONE); 
            } 
        }); 
    } 
}


OutPut :-


No comments:

Post a Comment