gpt4 book ai didi

android - 将 Listview 与布局的其他元素对齐

转载 作者:行者123 更新时间:2023-11-29 17:46:03 26 4
gpt4 key购买 nike

我正在创建一个应用程序,其中有一个选择时间的功能(以小时和分钟为单位)。为此,我创建了两个 ListView ,一个用于选择小时,另一个用于选择分钟。两个 ListView 都应该有七个可见的项目。然后有两个 TextView 应与第 4 项的底部对齐。您可以查看屏幕截图以更好地理解它。

screenshot

UI 应该看起来像图像。但是,问题是,对齐方式会随着屏幕分辨率的不同而变化。我尝试为不同的 dpis(hdpi、mdpi、xhdpi、xxhdpi)设置不同的边距和大小。但是,仍然对于某些设备(例如 S4), View 不对齐并且 ListView 显示第 8 项的顶部。我用 diff 在模拟器上测试了这个应用程序。分辨率,它在那里工作正常。

xml布局文件中的代码:

<RelativeLayout
android:id="@+id/linearLayout1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true"
android:visibility="visible">

<ListView
android:id="@+id/hourList"
android:layout_width="@dimen/timerListViewWidth"
android:layout_height="match_parent"
android:paddingBottom="63dp"
android:background="@null"
android:scrollbars="none"
android:divider="@null"
android:layout_centerVertical="true"
android:dividerHeight="0dp" >
</ListView>

<TextView
android:id="@+id/textView7"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="hrs"
android:textColor="@color/white"
android:paddingBottom="@dimen/bottomPaddingListPostFix" <!-- diff. for diff. dpis-->
android:layout_toRightOf="@+id/hourList"
android:layout_centerVertical="true"
android:textAppearance="?android:attr/textAppearanceSmall" />

<ListView
android:id="@+id/minList"
android:layout_width="@dimen/timerListViewWidth"
android:layout_height="match_parent"
android:paddingBottom="63dp"
android:background="@null"
android:layout_toRightOf="@+id/textView7"
android:layout_marginLeft="10dp"
android:scrollbars="none"
android:layout_centerVertical="true"
android:divider="@null"
android:dividerHeight="0dp" >
</ListView>

<TextView
android:id="@+id/textView8"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="min"
android:textColor="@color/white"
android:paddingBottom="@dimen/bottomPaddingListPostFix" <!-- diff. for diff. dpis-->
android:layout_toRightOf="@+id/minList"
android:layout_centerVertical="true"
android:textAppearance="?android:attr/textAppearanceSmall" />


</RelativeLayout>

和 ListView 行的代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@null"
android:orientation="vertical"
android:duplicateParentState="true" >

<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:background="@null"
android:gravity="center_horizontal"
android:text="24"
android:textColor="@drawable/row_selector"
android:duplicateParentState="true"
android:textSize="@dimen/timerListViewItemTextSize" /> <!-- diff. for diff. dpis-->

</LinearLayout>

是否可以动态管理所有差异。屏幕尺寸和分辨率?如果是,我该如何实现?

最佳答案

1) 添加两个自定义 ListView ,一个用于小时,一个用于分钟2) 使用此代码禁用这两个 ListView 的滚动

在您的 CustomListView 中:

@Override
public boolean dispatchTouchEvent(MotionEvent ev){
if(ev.getAction()==MotionEvent.ACTION_MOVE)
return true;
return super.dispatchTouchEvent(ev);
}

然后 ListView 会对点击使用react,但不会改变滚动位置。

3) 并使用与白色相同的逻辑来显示小时和分钟

关于android - 将 Listview 与布局的其他元素对齐,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26641537/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com