【问题标题】:LinearLayout not Displaying线性布局不显示
【发布时间】:2016-05-12 05:15:30
【问题描述】:

您好,我正在学习 Android。

这是我的布局代码:

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.example.android.aidsdruginformation.DetailActivity">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        >
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="1"
            android:orientation="horizontal">

            <TextView
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:elevation="4dp"
                android:padding="8dp"
                android:text="ApprovalStatus"
                android:textAlignment="center" />

            <TextView
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:elevation="4dp"
                android:padding="8dp"
                android:text="FDA-approved"
                android:textAlignment="center" />
        </LinearLayout>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="1"
            android:orientation="horizontal">

            <TextView
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:elevation="4dp"
                android:padding="8dp"
                android:text="ApprovalStatus"
                android:textAlignment="center" />

            <TextView
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:elevation="4dp"
                android:padding="8dp"
                android:text="GDA-approved"
                android:textAlignment="center" />
        </LinearLayout>
    </LinearLayout>
</ScrollView>

用户界面截图:

我希望我的 UI 看起来如何: 为什么第二个LinearLayout 没有显示? 难道我做错了什么? 在使用layout_width 时,父元素是否应该具有固定尺寸? 请指教..

链接到我的回购: https://github.com/MukundPradeep/AidsDrugInformation

【问题讨论】:

  • 在滚动视图上使用android:fillViewport="true"
  • 以上评论为答案。
  • 我已经添加了这个并将 android:weightSum="2" 设置为我的父 LinearLayout.. 第二个内部 LinearLayout 仍然没有显示
  • 显示截图,你想要什么?
  • 已经用需要的 UI 进行了编辑。水平元素必须对齐。页面必须是可滚动的。我不想使用 ListView

标签: android xml android-layout android-studio scrollview


【解决方案1】:

通过我的回购,

我认为框架正在使用layout v-17 文件夹下的activity_detail.xml,因为我使用的android:textAlignment="center" 属性仅适用于API 17+。我的目标 SDK 是 23。 因此,我发布的布局(在layout 目录下)只会显示在运行 Android 版本低于 17 的设备上。

如果您打算使用上述属性,请确保在为不同 API 生成的所有布局文件夹中实现布局更改。

感谢大家帮助我。

【讨论】:

  • 是的。这就是问题所在。抱歉耽搁了。检查我编辑的答案(cmets)
  • ahaha.. 也看到并评论了那里:)
【解决方案2】:

你可以使用android:fillViewport

定义滚动视图是否应该拉伸其内容以填充 视口。

必须是布尔值,“真”或“假”。

您应该尝试以下方法。将LinearLayout设为root。

    <LinearLayout
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">

    <ScrollView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:fillViewport="true">
       // Your Staff
    </ScrollView>
</LinearLayout>

【讨论】:

  • 试过了,没有成功。链接到我的回购:github.com/MukundPradeep/AidsDrugInformation你能看一下吗?
  • @MukundPradeep 好的 .wait
  • @MukundPradeep remove .at first copy activity_detail.xml 然后删除 activity_detail.xmlv17 。最后删除两个 xmls 然后粘贴 activity_detail.xml .then clean-restart。
  • activity_detailactivity_detailv17 的问题
  • 谢谢.. 一段时间前我想通了
【解决方案3】:

试试,给 ScrollView 添加一些属性,

android:fillViewport="true", android:isScrollContainer="true"

将 LinearLayout 添加为 ScrollView 的父级


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

    <ScrollView
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:fillViewport="true"
        android:isScrollContainer="true" >

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            android:weightSum="10" >

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="0dp"
                android:layout_weight="1"
                android:orientation="horizontal"
                android:weightSum="2" >

                <TextView
                    android:layout_width="0dp"
                    android:layout_height="match_parent"
                    android:layout_weight="1"
                    android:elevation="4dp"
                    android:gravity="center"
                    android:padding="8dp"
                    android:text="ApprovalStatus"
                    android:textAlignment="center" />

                <TextView
                    android:layout_width="0dp"
                    android:layout_height="match_parent"
                    android:layout_weight="1"
                    android:elevation="4dp"
                    android:gravity="center"
                    android:padding="8dp"
                    android:text="FDA-approved"
                    android:textAlignment="center" />
            </LinearLayout >

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="0dp"
                android:layout_weight="1"
                android:orientation="horizontal"
                android:weightSum="2" >

                <TextView
                    android:layout_width="0dp"
                    android:layout_height="match_parent"
                    android:layout_weight="1"
                    android:elevation="4dp"
                    android:gravity="center"
                    android:padding="8dp"
                    android:text="ApprovalStatus"
                    android:textAlignment="center" />

                <TextView
                    android:layout_width="0dp"
                    android:layout_height="match_parent"
                    android:layout_weight="1"
                    android:elevation="4dp"
                    android:gravity="center"
                    android:padding="8dp"
                    android:text="GDA-approved"
                    android:textAlignment="center" />
            </LinearLayout >

            <View
                android:layout_width="match_parent"
                android:layout_height="0dp"
                android:layout_weight="8" />
        </LinearLayout >
    </ScrollView >
</LinearLayout >

【讨论】:

  • 是的,你必须有数据才能滚动
  • 阿米特..我使用了完全相同的代码,但第二个布局仍然没有显示..l
  • 比你做错了什么,因为这个布局显示了两个带有scrrolview的线性布局
  • 你知道我还有什么地方会出错吗?回购链接:github.com/MukundPradeep/AidsDrugInformation
  • 用 android:weightSum 尝试一些简单的代码,看看是否正确显示?
【解决方案4】:

我试过你的代码,它正在显示

试试这个方法

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fillViewport="true"
    tools:context="com.example.android.aidsdruginformation.DetailActivity">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        >
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="1"
            android:orientation="horizontal">

            <TextView
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:elevation="4dp"
                android:padding="8dp"
                android:text="ApprovalStatus"
                android:textAlignment="center" />

            <TextView
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:elevation="4dp"
                android:padding="8dp"
                android:text="FDA-approved"
                android:textAlignment="center" />
        </LinearLayout>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="1"
            android:orientation="horizontal">

            <TextView
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:elevation="4dp"
                android:padding="8dp"
                android:text="ApprovalStatus"
                android:textAlignment="center" />

            <TextView
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:elevation="4dp"
                android:padding="8dp"
                android:text="GDA-approved"
                android:textAlignment="center" />
        </LinearLayout>
    </LinearLayout>
</ScrollView>

输出

【讨论】:

  • 使用 android:fillViewport="true" 试过这个。。我的手机上仍然没有显示
【解决方案5】:
  <?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.example.android.aidsdruginformation.DetailActivity">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        >
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal">

            <TextView
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:elevation="4dp"
                android:padding="8dp"
                android:text="ApprovalStatus"
                android:textAlignment="center" />

            <TextView
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:elevation="4dp"
                android:padding="8dp"
                android:text="FDA-approved"
                android:textAlignment="center" />
        </LinearLayout>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal">

            <TextView
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:elevation="4dp"
                android:padding="8dp"
                android:text="ApprovalStatus"
                android:textAlignment="center" />

            <TextView
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:elevation="4dp"
                android:padding="8dp"
                android:text="GDA-approved"
                android:textAlignment="center" />
        </LinearLayout>
    </LinearLayout>
</ScrollView>

您将第一个布局权重设为 1。这将占据屏幕的整个高度。你可以划分它。而且在滚动视图内部,如果你给予权重,那么滚动视图有什么用。

【讨论】:

    【解决方案6】:

    检查这个。如果它有帮助,就让它正确。

    <ScrollView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="20dp">
    
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        >
    
        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:padding="10dp"
            android:layout_weight="1"
            android:id="@+id/l1"
            >
    
    
                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center"
                    android:paddingLeft="10dp"
                    android:paddingRight="10dp"
                    android:textStyle="bold"
                    android:textColor="#ffffff"
                    android:text="Now book a ride at 6Rs/km with uber go"
                    android:layout_centerVertical="true"
                    android:layout_alignParentStart="true" />
    
    
    
    
                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center"
                    android:paddingLeft="10dp"
                    android:paddingRight="10dp"
                    android:text="7/11 supermarket get special discounts today only"
                    android:textStyle="bold"
                    android:textColor="#ffffff"
                    android:layout_centerVertical="true"
                    android:layout_alignParentStart="true" />
    
    
    
    
    
    
        </RelativeLayout>
        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_below="@id/l1"
            android:padding="10dp"
            android:layout_weight="1"
            android:id="@+id/l2">
    
    
                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center"
                    android:paddingLeft="10dp"
                    android:paddingRight="10dp"
                    android:textStyle="bold"
                    android:textColor="#ffffff"
                    android:text="10% discount on all meals"
                    android:layout_centerVertical="true"
                    android:layout_alignParentStart="true" />
    
    
    
    
                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center"
                    android:paddingLeft="10dp"
                    android:paddingRight="10dp"
                    android:textStyle="bold"
                    android:textColor="#ffffff"
                    android:text="Clearance sale upto 40% off"
                    android:layout_centerVertical="true"
                    android:layout_alignParentStart="true" />
    
    
    
    
    
        </RelativeLayout>
    
        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="201dp"
            android:layout_below="@id/l2"
            android:layout_weight="1"
            android:padding="10dp"
            >
    
           <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center"
                    android:paddingLeft="10dp"
                    android:paddingRight="10dp"
                    android:textStyle="bold"
                    android:textColor="#ffffff"
                    android:text="Starbucks coffee try our special new mocha latte for a limited period discount"
                    android:layout_centerVertical="true"
                    android:layout_alignParentStart="true" />
    
                   <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center"
                    android:paddingLeft="10dp"
                    android:paddingRight="10dp"
                    android:textStyle="bold"
                    android:textColor="#ffffff"
                    android:text="Buy 2 get 1 free*"
                    android:layout_centerVertical="true"
                    android:layout_alignParentStart="true" />
         </RelativeLayout>
    </LinearLayout>
    

    【讨论】:

      【解决方案7】:

      只要给父线性布局这个属性:

      android:weightSum="2" 然后你的两个子线性布局都显示在屏幕上。

      【讨论】:

        【解决方案8】:

        用另一个垂直方向的线性布局包裹你的两个线性布局(如许多 cmets 所示)。在您的情况下,两个线性布局都相互重叠,因此您只看到一个。 除非它有足够的项目可以滚动,否则它不能滚动。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-04-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多