Tuesday 8 March 2016

How to Make TextView Invisible?

TextView is a view that displays text. Now, the question is how do we make this text disappear and then reappear only when a particular condition is fulfilled? Well, it's easy, here is an example.


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
  android:orientation="vertical"
  tools:context="com.ruksarkachchhi.textinvisible.MainActivity">

  <TextView
      android:id="@+id/quotes"
      style="@style/Text"
      android:text="@string/quotes"
      android:visibility="gone" />

  <Button
      style="@style/Text"
      android:onClick="ShowText"
      android:text="Show" />
</LinearLayout>



import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

  @Override
  protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
  }

  public void ShowText(View view) {
      TextView quotes = (TextView) findViewById(R.id.quotes);
      quotes.getText().toString();
      quotes.setVisibility(View.VISIBLE);
  }
}

Visibility


Visibility is an view attribute and is written as "android:visibility" in xml. There are three options that you get visible, invisible and gone.

What is the difference between Invisible and Gone?


Well, when you set visibility to be invisible then it occupies a space in the layout but it still stays invisible.  On the other hand when you select visibility to be gone then it does not occupy any space in the layout. Here is how it looks.

Text set to Invisible


            

Text set to Gone

         

No comments:

Post a Comment