我正在尝试在多种分辨率上缩放自定义ListView,但是我遇到了这个问题:Pixel 2 XL(这是1440p的设备)上有多余的空白,但是在Nexus 5X上看起来还不错是1080p的设备。
附加的是我同时用于Fragment和ListView的XML代码。我在片段上使用ConstraintLayout,在ListView上使用RelativeLayout。我曾尝试将ConstraintLayout用于ListView,但在将第二个文本视图锚定到右侧时遇到问题。
ListView XML
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
片段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:id="@+id/linearLayout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/textView1"
android:layout_width="68dp"
android:layout_height="wrap_content"
android:gravity="start"
android:text="TextView"
android:textSize="18sp" />
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:layout_marginStart="310dp"
android:layout_marginTop="0dp"
android:gravity="end"
android:text="TextView"
android:textSize="18sp" />
</RelativeLayout>
答案 0 :(得分:0)
设置
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
将始终将您的ListView放在中心。 尝试删除
app:layout_constraintBottom_toBottomOf="parent"
答案 1 :(得分:0)
进行以下更改
Listview 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:id="@+id/linearLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/textView1"
android:layout_width="68dp"
android:layout_height="wrap_content"
android:gravity="start"
android:text="TextView"
android:textSize="18sp" />
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:layout_marginStart="310dp"
android:layout_marginTop="0dp"
android:gravity="end"
android:text="TextView"
android:textSize="18sp" />
</RelativeLayout>
片段XML
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.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:id="@+id/frameLayout2"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="your_color"
tools:context=".LeaderboardFrag">
<!-- TODO: Update blank fragment layout -->
<ListView
android:id="@+id/leaderboardListView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
/>
</android.support.constraint.ConstraintLayout>
答案 2 :(得分:0)
约束布局不支持match_parent
,因此您可以执行以下操作
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.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:id="@+id/frameLayout2"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".LeaderboardFrag">
<!-- TODO: Update blank fragment layout -->
<ListView
android:id="@+id/leaderboardListView"
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"/>
</android.support.constraint.ConstraintLayout>
将值设置为0dp
将使您的布局与您提供的约束相匹配。另外,您选择使用RecyclerView
比使用ListView
更好。