Sunday, April 1, 2018

java - Textview Gravity not working properly in android



What's wrong with my code, I'm trying to display my TextView named "invalid", in different locations (left,right,center), but the gravity (left,right,center) won't work! enter image description here



My text.xml is





xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="20dp" >

android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/etext"

android:hint="@string/comment"
android:inputType="textPassword"/>

android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:weightSum="100">
android:id="@+id/button1"

android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/button"
android:layout_weight="25"/>

android:id="@+id/toggleButton1"
android:layout_width="fill_parent"
android:layout_height="40dp"
android:text="ToggleButton"

android:layout_weight="75"
android:checked="true"
android:paddingLeft="15dp"/>


android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/invalid"

android:layout_gravity="center"
android:gravity="center" />



My TextPlay.java is



public class TextPlay extends Activity {
Button button;
ToggleButton tbutton;

TextView tview;
EditText et;

@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.text);
button = (Button) findViewById(R.id.button1);
tbutton = (ToggleButton) findViewById(R.id.toggleButton1);

tview = (TextView) findViewById(R.id.textView1);
et = (EditText) findViewById(R.id.etext);
tbutton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if (tbutton.isChecked()) {
et.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD);
} else {
et.setInputType(InputType.TYPE_TEXT_VARIATION_PASSWORD);

}
}
});
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
String input = et.getText().toString();
System.out.println(input);
if (input.contentEquals("left")) {

tview.setGravity(Gravity.LEFT);
} else if (input.contentEquals("right")) {
System.out.println("inside right");
tview.setGravity(Gravity.RIGHT);
} else if (input.contentEquals("right")) {
tview.setGravity(Gravity.CENTER);
}
}
});
}

}

Answer



You set this text view a width of "wrap_content" it means, what ever the text is, the view take the size of the text.



and in the LinearLayout , the default gravity (used here) is 'center'



you should try this :




android:id="@+id/textView1"
android:layout_width="match_parent" <= change this
android:layout_height="wrap_content"
android:text="@string/invalid"
android:gravity="center" <= then this gravity will be taken into account
/>

No comments:

Post a Comment

plot explanation - Why did Peaches&#39; mom hang on the tree? - Movies &amp; TV

In the middle of the movie Ice Age: Continental Drift Peaches' mom asked Peaches to go to sleep. Then, she hung on the tree. This parti...