我正在尝试使用按钮实现布局,屏幕顶部为EditText
和Buttton
,底部为TextView
,ListView
它垂直填满了它们后面的空间。昨晚我对这个或多或少是正确的,除了使用ListView
的绝对高度,只是为了测试应用程序的处理。
我不知道自从我关闭Android Studio之后发生了什么,现在打开它,也许是魔术,也许是Git回购的东西,或者是我的无意识改变,但现在是ListView
似乎从显示器向下无限延伸,如图中的橙色轮廓所示:
我尝试了各种layout_height
值,上面的图片为50dp
。即使低至10dp
没有任何区别,并且尝试通过在顶部蓝色锚线上使用鼠标将其拖得更小没有任何区别。
这里有什么问题,我应该在哪里尝试解决这个问题?
以下是布局的XML,其中包含所有破碎的荣耀:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:layout_centerHorizontal="true"
tools:context="com.bradykelly.heavyweights.MainActivity"
android:weightSum="1">
<TextView
android:layout_width="match_parent"
android:layout_height="10dp"
android:text="@string/adjustment_label"
android:id="@+id/scale_text_view_label"
android:background="@color/colorPrimaryDark"
android:textColor="@color/textColorPrimary"
android:layout_gravity="center_horizontal"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:layout_marginTop="20dp"
android:textAlignment="center"
android:gravity="center"
android:textSize="20sp"
android:textStyle="bold"
android:layout_weight="0.09"
android:height="10dp"/>
<EditText
android:id="@+id/editText"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@drawable/text_view_border"
android:layout_marginTop="5dp"
android:ems="10"
android:inputType="text"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:enabled="true"
android:focusable="true"/>
<Button
android:id="@+id/processButton"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:layout_marginTop="5dp"
android:text="@string/process_file_text" />
<ListView
android:cacheColorHint="#00000000"
android:scrollbars="none"
android:fadingEdge="vertical"
android:soundEffectsEnabled="true"
android:dividerHeight="1dp"
android:padding="5dp"
android:smoothScrollbar="true"
android:layout_weight="50"
android:layout_width="fill_parent"
android:layout_height="50dp"
android:drawSelectorOnTop="false"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:layout_marginBottom="10dp"
android:layout_marginTop="5dp"
/>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/textView3"
android:background="@drawable/text_view_border"
android:layout_marginLeft="20dp"
android:textAlignment="center"
android:gravity="center"
android:textSize="20sp"
android:textStyle="bold"
android:layout_marginRight="20dp"
android:layout_marginBottom="-20dp"
/>
</LinearLayout>
答案 0 :(得分:3)
我使用
layout_weight
属性对您的布局进行了一些更改。将xml
代码下方应用到Layout
。使用layout
下面的List view
可以显示我在screen shot
附加的屏幕List view height=50
。因为您已经提供了
weight
并且您已经提供You not need to define height when you are using weight property in your layout
因此会导致问题。
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_centerHorizontal="true" android:orientation="vertical" android:weightSum="10"> <TextView android:id="@+id/scale_text_view_label" android:layout_width="match_parent" android:layout_height="0dp" android:layout_gravity="center_horizontal" android:layout_marginLeft="20dp" android:layout_marginRight="20dp" android:layout_marginTop="20dp" android:layout_weight="1" android:background="@color/colorPrimaryDark" android:gravity="center" android:text="Adjustment Label" android:textAlignment="center" android:textColor="#FFFFFF" android:textSize="20sp" android:textStyle="bold" /> <EditText android:id="@+id/editText" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginLeft="20dp" android:layout_marginRight="20dp" android:layout_marginTop="5dp" android:ems="10" android:enabled="true" android:focusable="true" android:inputType="text" /> <Button android:id="@+id/processButton" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginLeft="20dp" android:layout_marginRight="20dp" android:layout_marginTop="5dp" android:text="Process" /> <ListView android:id="@+id/ListView" android:layout_width="fill_parent" android:layout_height="0dp" android:layout_marginBottom="10dp" android:layout_marginLeft="20dp" android:layout_marginRight="20dp" android:layout_marginTop="5dp" android:layout_weight="8" android:cacheColorHint="#00000000" android:dividerHeight="1dp" android:drawSelectorOnTop="false" android:fadingEdge="vertical" android:padding="5dp" android:scrollbars="none" android:smoothScrollbar="true" android:soundEffectsEnabled="true" /> <TextView android:id="@+id/textView3" android:layout_width="fill_parent" android:layout_height="0dp" android:layout_marginBottom="-20dp" android:layout_marginLeft="20dp" android:layout_marginRight="20dp" android:layout_weight="1" android:gravity="center" android:text="Testeing" android:textAlignment="center" android:textSize="20sp" android:textStyle="bold" /> </LinearLayout>
。
IEqualityComparer<T>
答案 1 :(得分:1)
您正在使用
android:layout_weight="50"
对于listview,但线性布局中的权重和为1。这就是listview的问题。
像这样使用
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:weightSum="10">
<Textview
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1"/>
<EditText
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1"/>
<Button
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1"/>
<ListView
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="6"/>
<TextView
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1"/>
</LinearLayout>
体重计数应与体重总和相匹配。父布局应为fillparent,并为所有子布局设置高度为0dp。
答案 2 :(得分:0)
我仅在layout_weight
中使用ListView
。检查一下:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:layout_centerHorizontal="true"
android:weightSum="1">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="test"
android:id="@+id/scale_text_view_label"
android:background="@color/colorPrimaryDark"
android:layout_gravity="center_horizontal"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:layout_marginTop="20dp"
android:textAlignment="center"
android:gravity="center"
android:textSize="20sp"
android:textStyle="bold"/>
<EditText
android:id="@+id/editText"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:ems="10"
android:inputType="text"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:enabled="true"
android:focusable="true"/>
<Button
android:id="@+id/processButton"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:layout_marginTop="5dp"
android:text="test" />
<ListView
android:cacheColorHint="#00000000"
android:scrollbars="none"
android:fadingEdge="vertical"
android:soundEffectsEnabled="true"
android:dividerHeight="1dp"
android:padding="5dp"
android:smoothScrollbar="true"
android:layout_weight="1"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:drawSelectorOnTop="false"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:layout_marginBottom="10dp"
android:layout_marginTop="5dp"
/>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/textView3"
android:layout_marginLeft="20dp"
android:textAlignment="center"
android:gravity="center"
android:text="Test"
android:textSize="20sp"
android:textStyle="bold"
android:layout_marginRight="20dp"
/>
</LinearLayout>