简体   繁体   English

Android布局问题 - 使用权重的相对宽度百分比

[英]Android layout issue - relative widths in percent using weight

I am trying to assign relative widths to columns in a ListView that is in a TabHost, using layout_weight as suggested here : 我试图分配相对宽度的列在ListView是在TabHost,使用layout_weight的建议在这里

<?xml version="1.0" encoding="utf-8"?>
<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
  android:id="@android:id/tabhost"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent">
  <LinearLayout
     android:orientation="vertical"
     android:layout_width="fill_parent"
     android:layout_height="fill_parent">
     <TabWidget android:id="@android:id/tabs"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"/>
        <FrameLayout android:id="@android:id/tabcontent"
           android:layout_width="fill_parent"
           android:layout_height="fill_parent">
           <TableLayout  
              android:id="@+id/triplist" 
              android:layout_width="fill_parent"
              android:layout_height="wrap_content"
              android:paddingTop="4px">
              <TableRow>
                 <ListView android:id="@+id/triplistview"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"/>
              </TableRow>
              <TableRow>
                 <Button android:id="@+id/newtripbutton"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Add Trip"/>
              </TableRow>
[other tabs ...]

My row definition has 4 columns that I would like to size as follows: 我的行定义有4列,我想按如下方式调整大小:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="fill_parent"
   android:layout_height="wrap_content"
   android:orientation="horizontal"
   android:weightSum="1.0"
   android:padding="4px">   
   <TextView android:id="@+id/rowtripdate"
      android:layout_weight=".2"
      android:layout_width="0dip"
      android:layout_height="wrap_content"
      android:inputType="date"/>
   <TextView android:id="@+id/rowodostart"
      android:layout_weight=".2"
      android:layout_width="0dip"
      android:layout_height="wrap_content"/>
   <TextView android:id="@+id/rowodoend"
      android:layout_weight=".2"
      android:layout_width="0dip"
      android:layout_height="wrap_content"/>
   <TextView android:id="@+id/rowcomment"
      android:layout_weight=".4"
      android:layout_width="0dip"
      android:layout_height="wrap_content">

Unfortunately, it seems to want to fit all the columns into the space that the button occupies, as opposed to the width of the screen. 不幸的是,它似乎想要将所有列放入按钮占据的空间,而不是屏幕的宽度。 Or maybe there is another constraint that I do not understand. 或许还有另一个我不理解的约束。 I'd appreciate your help. 我很感激你的帮助。

替代文字
(source: heeroz.com ) (来源: heeroz.com

I think I forgot this property for the TableLayout element: 我想我忘记了TableLayout元素的这个属性:

android:stretchColumns="0"

It appears to be working now. 它似乎现在正在运作。

I don't see anything obviously wrong in what you are showing there. 你在那里展示的东西我没有看到任何明显的错误。 To get a better picture of what is going on, you might try out the heirarchy viewer . 为了更好地了解正在发生的事情,您可以尝试使用层次结构查看器 It comes with the SDK. 它附带SDK。 It will visualize for you how much space each of the "hidden" layers is taking, so you can figure out which one decided to only be that big. 它将为您呈现每个“隐藏”层所占用的空间,因此您可以找出哪一个决定只有那么大。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM