Почему android вывод проекта отличается в Android эмуляторе и аппаратном устройстве - PullRequest
0 голосов
/ 30 апреля 2020

Когда я запускаю свой проект android в эмуляторе android (Nexus 5X), он показывает правильный макет, который я разработал. но если я запускаю проект в Аппаратное устройство (Samsung Galaxy J2 Prime), оно показывает различный вывод. (Поля не совсем верны. В Аппаратном устройстве оно придерживается дна, см. поля внизу ) 1 - Выход аппаратного устройства 2 - Выход эмулятора

И это xml код макета

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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"
    android:background="@drawable/background"
    tools:context=".OrderStatus">


    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">

        <androidx.recyclerview.widget.RecyclerView
            android:id="@+id/listOrders"
            android:background="@android:color/transparent"
            android:layout_width="match_parent"
            android:layout_height="550dp">


        </androidx.recyclerview.widget.RecyclerView>

        <androidx.recyclerview.widget.RecyclerView
            android:id="@+id/listCalls"
            android:background="@android:color/transparent"
            android:layout_width="match_parent"
            android:layout_height="100dp">


        </androidx.recyclerview.widget.RecyclerView>


    </LinearLayout>


</RelativeLayout>

Ответы [ 2 ]

1 голос
/ 30 апреля 2020

Если вы хотите иметь скоординированные макеты на разных устройствах, не используйте размеры dp. Это зависит от размера телефона. Лучше использовать макет ограничения. См. Мой ответ на этот вопрос в качестве примера использования макета ограничения: Как предотвратить изменение размера одного действия при открытии клавиатуры

1 голос
/ 30 апреля 2020

Чтобы сделать эту работу, сделайте следующее:

  • Измените тип размера recyclerView с dp (плотность пикселей) на sp (масштабируемый пиксель)

    xmlns: tools = "http://schemas.android.com/tools" android: layout_width = "match_parent" android: layout_height = "match_parent" android: background = "@ drawable / background" tools : context = ". OrderStatus">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">
    
        <androidx.recyclerview.widget.RecyclerView
            android:id="@+id/listOrders"
            android:background="@android:color/transparent"
            android:layout_width="match_parent"
            android:layout_height="550sp">
    
    
        </androidx.recyclerview.widget.RecyclerView>
    
        <androidx.recyclerview.widget.RecyclerView
            android:id="@+id/listCalls"
            android:background="@android:color/transparent"
            android:layout_width="match_parent"
            android:layout_height="100sp">
    
    
        </androidx.recyclerview.widget.RecyclerView>
    
    
    </LinearLayout>
    

Это изменение масштаба макета также зависит от устройства.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...