【问题标题】:SortableTableView does not wrap height to its contentSortableTableView 不会将高度包装到其内容
【发布时间】:2020-09-06 07:15:01
【问题描述】:

我使用SortableTableView 作为我的表格视图,但在组件正下方包含一个 TextView 时遇到问题。

<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">
    <de.codecrafters.tableview.SortableTableView
       android:id="@+id/tableView"
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       app:tableView_columnCount="4"
       app:tableView_headerElevation="10" />
   <TextView
       android:id="@+id/txtSummaryRecords"
       android:textAppearance="?android:attr/textAppearanceMedium"
       android:text="Summary details goes here"
       android:layout_below="@+id/tableView"
       android:gravity="center_horizontal"
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:textColor="?android:attr/colorError" />
</RelativeLayout>

但是,当我将静态值添加到如下高度时,它会显示在表格的正下方。

<de.codecrafters.tableview.SortableTableView
     android:id="@+id/tableView"
     android:layout_width="match_parent"
     android:layout_height="450dp" <--included value
     app:tableView_columnCount="4"
     app:tableView_headerElevation="10" />

结果:

我尝试将android:layout_height= 设置为match_parent 并没有区别。看起来 SortableTableView 填充了整个屏幕,而不考虑 wrap_content 布局高度。任何支持将不胜感激。

【问题讨论】:

    标签: c# android xaml xamarin


    【解决方案1】:

    我也发现了这个问题,好像是默认高度已经是match_parent了。

    如果您希望 TextView 位于底部,而 SortableTableView 位于其上方。您可以像下面这样作为解决方法。

    <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">
    
      <de.codecrafters.tableview.SortableTableView
        android:id="@+id/tableView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_below="@id/toolbar"
        android:layout_above="@+id/txtSummaryRecords"
        app:tableView_columnCount="4"
        app:tableView_headerElevation="10"
        app:tableView_headerColor="@color/primary" />
      <TextView
        android:id="@+id/txtSummaryRecords"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:text="Summary details goes here"
        android:layout_alignParentBottom="true"
        android:gravity="center_horizontal"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textColor="?android:attr/colorError" />
    </RelativeLayout>
    

    【讨论】:

    • 感谢@leo,但这种方法在表格和文本视图之间也存在巨大差距。
    • @iJay 是的,如果你没有足够的数据,就会有差距。但另一方面,如果 wrap_content 有效,当有足够的数据时。我认为 textview 也会不可见,并且会超出屏幕边界。所以将 textview 固定到屏幕底部可能是一个比较可接受的方案,除非你根据其源代码自定义 SortableTableView。
    • 同意你的观点。有没有办法覆盖 SortableTableView 的属性?
    猜你喜欢
    • 1970-01-01
    • 2023-02-01
    • 1970-01-01
    • 2015-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-29
    • 1970-01-01
    相关资源
    最近更新 更多