Thursday 17 March 2016

How to Make Your App Scrollable?

Are you new to android programming and wondering how to make your app scrollable? Well, it’s pretty simple. Here is how to do it.


<?xml version="1.0" encoding="utf-8"?>

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:tools="http://schemas.android.com/tools"
  android:layout_width="match_parent"
  android:layout_height="wrap_content">


<LinearLayout
   <TextView ....... />
   <CheckBox ....... />


</LinearLayout>
</ScrollView>

As you can see from the above example, to make your app scrollable you have to put all the contents of your app into the ScrollView. ScrollView is a FrameLayout. ScrollView accepts only one child view. This might sound a little confusing. No, it does not mean you can’t have the rest of your views. From the above example, you can see that the ScrollView is parent to the Linear Layout but not to TextView and CheckBox. The LinearLayout is parent to our TextView and CheckBox.  Simple, isn’t it?

FillViewport is an attribute that defines whether the ScrollView should stretch its contents to fill the entire screen or not. If the child is bigger than the ScrollView then it does not make a difference. P.S this attribute works with Relative Layout only.




















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