My app's button positions changes on different devices. Sometimes buttons are getting bigger, sometimes getting smaller,sometimes a part of buttons arent visible. I use vertical linear layout. Buttons are in drawable folder and button sizes are 227x231 px.
There are some sample screenshots. Pixel 2 - Pixel 3a - Mi 9T Pro
How can i fix ?
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/back4">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="95dp"
android:background="@drawable/a"
android:orientation="horizontal">
<TextView
android:id="@+id/teamName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:layout_marginTop="15dp"
android:layout_weight="1"
android:fontFamily="@font/andika"
android:paddingTop="20dp"
android:text="Team 1"
android:textAlignment="center"
android:textColor="#000000"
android:textSize="20sp" />
<TextView
android:id="@+id/score"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginTop="15dp"
android:layout_weight="1"
android:paddingLeft="50dp"
android:text="5"
android:textColor="#303f9f"
android:textSize="36sp"
android:textStyle="bold" />
<TextView
android:id="@+id/roundText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:layout_marginTop="15dp"
android:layout_weight="1"
android:fontFamily="@font/andika"
android:paddingLeft="10dp"
android:paddingTop="10dp"
android:text="Round 1/5"
android:textAlignment="viewStart"
android:textColor="#000000"
android:textSize="20sp" />
</LinearLayout>
<TextView
android:id="@+id/timeText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="100dp"
android:layout_marginTop="20dp"
android:layout_marginRight="100dp"
android:fontFamily="@font/arsenal_bold"
android:text="60"
android:textAlignment="center"
android:textColor="#E2DADA"
android:textSize="40sp"
android:textStyle="bold" />
<ProgressBar
android:id="@+id/progressBar"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:progress="0"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="419dp"
android:background="@drawable/game4"
android:orientation="vertical">
<TextView
android:id="@+id/guessWord"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="80dp"
android:layout_marginTop="50dp"
android:layout_marginEnd="80dp"
android:text="Guess "
android:textAlignment="center"
android:textColor="#FFFFFF"
android:textSize="38sp"
android:textStyle="bold" />
<TextView
android:id="@+id/translateWord"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="80dp"
android:layout_marginTop="10dp"
android:layout_marginEnd="80dp"
android:text="(Translate)"
android:textAlignment="center"
android:textColor="#D0FFFFFF"
android:textSize="26sp"
android:textStyle="bold" />
<TextView
android:id="@+id/tabuWord1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="80dp"
android:layout_marginTop="35dp"
android:layout_marginEnd="80dp"
android:text="TextView"
android:textAlignment="center"
android:textSize="30sp" />
<TextView
android:id="@+id/tabuWord2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="80dp"
android:layout_marginTop="15dp"
android:layout_marginEnd="80dp"
android:text="TextView"
android:textAlignment="center"
android:textSize="30sp" />
<TextView
android:id="@+id/tabuWord3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="80dp"
android:layout_marginTop="15dp"
android:layout_marginEnd="80dp"
android:text="TextView"
android:textAlignment="center"
android:textSize="30sp" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="123dp"
android:orientation="horizontal">
<Button
android:id="@+id/tabuButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="30dp"
android:layout_marginTop="20dp"
android:layout_marginRight="20dp"
android:layout_marginBottom="30dp"
android:layout_weight="1"
android:background="@drawable/tabubutton2" />
<Button
android:id="@+id/passButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:layout_marginTop="20dp"
android:layout_marginRight="20dp"
android:layout_marginBottom="30dp"
android:layout_weight="1"
android:background="@drawable/pasbutton2" />
<Button
android:id="@+id/trueButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:layout_marginTop="20dp"
android:layout_marginEnd="30dp"
android:layout_marginBottom="30dp"
android:layout_weight="1"
android:background="@drawable/truebutton2" />
</LinearLayout>
</LinearLayout>
您应该使用 ScrollView 但如果您不希望屏幕滚动,您应该使用 ConstraintLayout 重建它
You can do it with something like this:
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ScrollView
style="@style/parent"
tools:ignore="MissingConstraints">
.......
</ScrollView>
</androidx.constraintlayout.widget.ConstraintLayout>
style.xml
<style name="parent">
<item name="android:layout_width">match_parent</item>
<item name="android:layout_height">wrap_content</item>
</style>
I think this should work on all screens
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/back4">
<ScrollView
style="@style/parent"
tools:ignore="MissingConstraints,ScrollViewCount">
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="95dp"
android:background="@drawable/a"
android:orientation="horizontal">
<TextView
android:id="@+id/teamName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:layout_marginTop="15dp"
android:layout_weight="1"
android:fontFamily="@font/andika"
android:paddingTop="20dp"
android:text="Team 1"
android:textAlignment="center"
android:textColor="#000000"
android:textSize="20sp" />
<TextView
android:id="@+id/score"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginTop="15dp"
android:layout_weight="1"
android:paddingLeft="50dp"
android:text="5"
android:textColor="#303f9f"
android:textSize="36sp"
android:textStyle="bold" />
<TextView
android:id="@+id/roundText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:layout_marginTop="15dp"
android:layout_weight="1"
android:fontFamily="@font/andika"
android:paddingLeft="10dp"
android:paddingTop="10dp"
android:text="Round 1/5"
android:textAlignment="viewStart"
android:textColor="#000000"
android:textSize="20sp" />
</LinearLayout>
<TextView
android:gravity="center"
android:layout_gravity="center"
android:id="@+id/timeText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fontFamily="@font/arsenal_bold"
android:text="60"
android:textAlignment="center"
android:textColor="#E2DADA"
android:textSize="40sp"
android:textStyle="bold" />
<ProgressBar
android:id="@+id/progressBar"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:progress="0"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/game4"
android:orientation="vertical">
<TextView
android:layout_margin="25dp"
android:id="@+id/guessWord"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Guess "
android:textAlignment="center"
android:textColor="#FFFFFF"
android:textSize="38sp"
android:textStyle="bold" />
<TextView
android:layout_margin="15dp"
android:id="@+id/translateWord"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="(Translate)"
android:textAlignment="center"
android:textColor="#D0FFFFFF"
android:textSize="26sp"
android:textStyle="bold" />
<TextView
android:layout_margin="15dp"
android:id="@+id/tabuWord1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="TextView"
android:textAlignment="center"
android:textSize="30sp" />
<TextView
android:layout_margin="15dp"
android:id="@+id/tabuWord2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="TextView"
android:textAlignment="center"
android:textSize="30sp" />
<TextView
android:layout_margin="15dp"
android:id="@+id/tabuWord3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="TextView"
android:textAlignment="center"
android:textSize="30sp" />
</LinearLayout>
<LinearLayout
android:layout_marginTop="15dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:layout_margin="25dp"
android:id="@+id/tabuButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@drawable/tabubutton2" />
<Button
android:layout_margin="25dp"
android:id="@+id/passButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@drawable/pasbutton2" />
<Button
android:layout_margin="25dp"
android:id="@+id/trueButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@drawable/truebutton2" />
</LinearLayout>
</LinearLayout>
</ScrollView>
</androidx.constraintlayout.widget.ConstraintLayout>
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.