【问题标题】:android linearlayout vertical not showing allandroid线性布局垂直不显示全部
【发布时间】:2012-12-28 23:30:07
【问题描述】:

我正在做一个安卓应用,我想做这个:

但现在它只显示照片和文本视图。

这是我的 info.xml:

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

 <LinearLayout 
    android:id="@+id/linear2"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal">

    <ImageView 
     android:id="@+id/image_profile"
     android:layout_height="48dp"
     android:layout_width="48dp"
     android:layout_marginTop="15dp"
     android:layout_marginLeft="20dp"/>


    <TextView
    android:id="@+id/nom_profile"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:textAppearance="?android:attr/textAppearanceMedium" 
    android:layout_weight="1"
    android:layout_marginTop="20dp"
    android:layout_marginLeft="10dp"/>

   </LinearLayout>

    <TextView
    android:id="@+id/SocialNetworks"
    android:layout_width="wrap_content"
    android:layout_height="0dp"
    android:text="Redes Sociales"
    android:textAppearance="?android:attr/textAppearanceMedium" 
    android:layout_weight="1"/>


    <ListView
    android:id="@+id/listaRedesSociales"
    android:layout_width="fill_parent"
    android:layout_height="0dp" 
    android:layout_weight="4">
    </ListView>

  </LinearLayout>

我不知道为什么只显示这个,我不知道为什么我放垂直时第一个线性布局会放水平! info.xml 不刷新吗?还是编程不好?

有人可以帮帮我吗?

谢谢

【问题讨论】:

  • 因为linear2的layout_height是match_parent,它占用了所有的垂直空间。尝试将 layout_height 的值更改为 wrap_content
  • 我还建议将父布局设为RelativeLayout

标签: android android-linearlayout


【解决方案1】:

使用 *fill_parent instend of match_parent*,也许你应该改变 linear2 的高度:layout_height='wrap_content'layout_height="0dp" layout_weight="1"

.

【讨论】:

  • “FILL_PARENT(在 API 8 级及更高级别中重命名为 MATCH_PARENT),这意味着视图希望与其父级一样大(减去填充)”来自Docs
  • 发表评论时请保持正确的格式。在上面你没有正确地加粗
【解决方案2】:

原因是您在第二个 LinearLayout 中将 ma​​tch_parent 赋予了 android:layout_height 并且没有指定 layout_weight。由于这种水平线性布局将高度作为整个屏幕

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

<LinearLayout 
android:id="@+id/linear2"
android:layout_width="match_parent"
android:layout_height="0dp"
android:orientation="horizontal"
android:layout_weight="1">

<ImageView 
 android:id="@+id/image_profile"
 android:layout_height="48dp"
 android:layout_width="48dp"
 android:layout_marginTop="15dp"
 android:layout_marginLeft="20dp"/>


<TextView
android:id="@+id/nom_profile"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium" 
android:layout_weight="1"
android:layout_marginTop="20dp"
android:layout_marginLeft="10dp"/>

<TextView
android:id="@+id/SocialNetworks"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:text="Redes Sociales"
android:textAppearance="?android:attr/textAppearanceMedium" 
android:layout_weight="1"/>


<ListView
android:id="@+id/listaRedesSociales"
android:layout_width="fill_parent"
android:layout_height="0dp" 
android:layout_weight="4">
</ListView>

试试上面的代码。如果这不能正常工作,请更改(或删除)所有视图的 layout_weight 属性(如果删除 layout_weight,请记住更改 layout_height 属性)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-04
    • 1970-01-01
    • 2017-08-26
    • 2015-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多