【问题标题】:Alignment of View Elements within a LinearLayoutLinearLayout 中视图元素的对齐方式
【发布时间】:2023-03-27 02:00:01
【问题描述】:

我不想问这个问题;由于某种原因,我无法自己弄清楚。我有一个垂直线性布局,其中包含我在我的应用程序中定义的自定义视图和一个 TextView。我希望我的自定义视图在屏幕顶部对齐,而 TextView 在屏幕底部对齐。不幸的是,无论我对 XML 文件的属性进行什么更改,当我运行模拟器时,我的自定义视图似乎总是垂直居中。 xml如下:

<LinearLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:orientation="vertical"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent" android:gravity="top">

    <CustomView
     android:id="@+id/customID"
        android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                tileSize="24"
                android:focusableInTouchMode="true" android:layout_gravity="top"/>

    <TextView
     android:id="@+id/text"
        android:text="@string/droidtactoe_layout_text"
        android:visibility="visible"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center_horizontal"
        android:textSize="24sp" android:textColor="#00000000" android:layout_gravity="bottom"/>

</LinearLayout>

【问题讨论】:

    标签: android


    【解决方案1】:

    首先,根据您的规则(“我希望我的自定义视图在屏幕顶部对齐,而 TextView 在屏幕底部对齐”),我建议使用 RelativeLayout,如它会更简单。只需在CustomView 上使用android:layout_alignParentTop="true",在TextView 上使用android:layout_alignParentBottom="true",然后转储所有gravity/layout_gravity 内容。

    如果您的 CustomView 仍然行为不端,请暂时将其替换为 Button 或其他内容。如果Button 的布局符合您的预期,那么您的CustomView 的实现有问题。如果你从一个真正的View 继承(例如,CustomViewTextView 的子类),你应该继承所有用于布局的正确功能。如果您的CustomView 只是View 的一个子类,那么您可能需要重写或调用您不需要的某些东西。我没有自定义 View 子类,只有 LinearLayout 之类的子类,所以我不能 100% 确定你会丢失什么。

    【讨论】:

      【解决方案2】:

      谢谢!这是 CustomView 中的一个问题。我使用的是 Snake 演示中覆盖视图的修改版本。该演示使用基于视图的高度和宽度在 onSizeChanged 中定义的 X 和 Y 偏移量。然后我在 onDraw 方法中使用这些偏移量来填充我试图绘制的对象的尺寸。

      出于一个现在对我来说没有意义的原因,我假设视图的宽度和高度将根据在 onDraw b/c 中将布局宽度和高度设置为包装内容。但是,传递给 onSizeChanged 的​​宽度和高度是整个屏幕的尺寸。结果,这些偏移量迫使我的自定义视图填满整个屏幕。我删除了偏移量,问题似乎得到了解决。

      再次,非常感谢!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-06-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多