【问题标题】:textview and scrollview alignment is not properly adjustedtextview 和 scrollview 对齐未正确调整
【发布时间】:2014-01-31 10:28:18
【问题描述】:

我正在实现一个布局,其中滚动视图中有一个 textview 和一个 webview。问题是我想与 webview 和 textview 保持相同的对齐。我的代码是

<LinearLayout 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:orientation="vertical"
android:background="#ffffff" >
 <RelativeLayout
        android:id = "@+id/relativeLayout0"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true">

    <ImageView
    android:id="@+id/imageView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/logo"
    android:layout_gravity="center_vertical"
    android:gravity="center"
    android:layout_centerInParent="true"
    android:layout_centerVertical="true"
    android:layout_centerHorizontal="true"/>

    </RelativeLayout>

    <RelativeLayout
        android:id = "@+id/rela1"
        android:layout_width = "match_parent"
        android:layout_height = "wrap_content">

        <TextView android:id="@+id/lblTitle"
     android:layout_width="fill_parent"
     android:layout_height="wrap_content"
     android:paddingTop="10dp"
     android:textSize="18dip"
     android:layout_margin="6dip"
     android:textColor="#000000"
     android:layout_gravity="left"
     android:paddingLeft="7dp"         />
    </RelativeLayout>
    <ScrollView
         android:id = "@+id/scrollview1"
         android:layout_width="match_parent"
         android:layout_height="0dp"
         android:layout_weight="1" >

        <WebView android:id="@+id/lblMessage"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content" />

    </ScrollView>
</LinearLayout>

我写了这行android:paddingLeft="7dp" 来调整对齐方式,但是我不想要这个。请帮帮我

谢谢建议。

【问题讨论】:

  • 请多解释。屏幕截图可能会有所帮助(预期/当前)
  • 我想从相同的对齐方式开始文本,如果我删除 paddingleft 行,这不会发生。

标签: android android-layout webview alignment scrollview


【解决方案1】:

RelativeLayout 的属性允许您使用align two children

你需要做这样的事情:

<ScrollView
         android:id = "@+id/scrollview1"
         android:layout_width="match_parent"
         android:layout_height="0dp"
         android:layout_weight="1"
        >

        <RelativeLayout
            android:id = "@+id/rela1"
            android:layout_width = "match_parent"
            android:layout_height = "wrap_content"
            >



            <TextView android:id="@+id/lblTitle"
                 android:layout_width="fill_parent"
                 android:layout_height="wrap_content"
                 android:paddingTop="10dp"
                 android:textSize="18dip"
                 android:layout_margin="6dip"
                 android:textColor="#000000"
                 android:layout_gravity="left"
                 android:paddingLeft="7dp"


                 />

            <WebView android:id="@+id/webview"
                 android:layout_width="fill_parent"
                 android:layout_height="wrap_content"
                 layout_below="@id/lblTitle"
                 layout_alignLeft="@id/lblTitle"

                />

        </RelativeLayou>
    </ScrollView>

【讨论】:

  • 我不想滚动文本视图。所以我只把 webview 放在了滚动视图中
  • 在这种情况下,您实际上可以删除 ScrollView。 WebView 应该处理任何需要完成的滚动。不过,您需要在 WebView 上为 layout_height 设置 match_parent
  • 如果我为 web 视图的 layout_height 设置 match_parent ,它会不会覆盖布局中的所有其他内容?
【解决方案2】:

滚动视图只包含一个父视图 因此,您必须在滚动视图中采用一种布局,然后在滚动视图中放置您想要的任何内容。

这里是编辑代码:enter code here

<RelativeLayout
    android:id="@+id/relativeLayout0"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true" >

    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerInParent="true"
        android:layout_centerVertical="true"
        android:layout_gravity="center_vertical"
        android:gravity="center"
        android:src="@drawable/ic_launcher" />
</RelativeLayout>

<ScrollView
    android:id="@+id/scrollview1"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="1" >

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

        <RelativeLayout
            android:id="@+id/rela1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" >

            <TextView
                android:id="@+id/lblTitle"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_gravity="left"
                android:layout_margin="6dip"
                android:paddingLeft="7dp"
                android:paddingTop="10dp"
                android:textColor="#000000"
                android:textSize="18dip" />
        </RelativeLayout>

        <WebView
            android:id="@+id/lblMessage"
            android:layout_width="fill_parent"
            android:layout_height="match_parent" />
    </LinearLayout>
</ScrollView>

【讨论】:

  • 是的,我知道这就是为什么我制作了滚动视图和 textview 兄弟姐妹的父级。我想知道是否有任何方法可以对齐滚动视图中存在的 textview 和 webview,因为我正在使用左侧填充来执行此操作。谢谢
  • 我不想滚动文本视图。所以我只把 webview 放在了 scrollview 里面。
【解决方案3】:

试试这个..

<ImageView
android:id="@+id/imageView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/logo"
android:layout_gravity="center_vertical"
android:gravity="center"
android:layout_centerInParent="true"
        android:layout_centerVertical="true"
        android:layout_centerHorizontal="true"/>
</RelativeLayout>

<RelativeLayout
    android:id = "@+id/rela1"
    android:layout_width = "match_parent"
    android:layout_height = "wrap_content"
    >
    <TextView android:id="@+id/lblTitle"
 android:layout_width="fill_parent"
 android:layout_height="wrap_content"
 android:paddingTop="10dp"
 android:textSize="18dip"
 android:textColor="#000000"
 android:layout_gravity="left"
 />
</RelativeLayout>
<ScrollView
     android:id = "@+id/scrollview1"
         android:layout_width="match_parent"
 android:layout_height="0dp"
 android:layout_weight="1"
    >
    <WebView android:id="@+id/lblMessage"
 android:layout_width="fill_parent"
 android:layout_height="wrap_content"

/>
</ScrollView>

【讨论】:

  • 这和我想的一样。请详细说明
  • 我已经删除了 android:layout_margin="6dip" 和 android:paddingLeft="7dp"
  • 或者你可以做一件事只使用 android:layout_margin 这个属性
【解决方案4】:

看来你有三个小问题
1) android:layout_alignParentTop="true" 不会影响任何事情,因为父级是 LinearLayout
2) android:textSize="18dip" 应始终在 sp 中提供文本大小。
3) android:layout_margin="6dip" 正因为如此,它的四周都有边距。

把你的代码改成

<LinearLayout 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:orientation="vertical"
android:background="#ffffff" >
 <RelativeLayout
        android:id = "@+id/relativeLayout0"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

    <ImageView
    android:id="@+id/imageView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/logo"
    android:layout_gravity="center_vertical"
    android:gravity="center"
    android:layout_centerInParent="true"
    android:layout_centerVertical="true"
    android:layout_centerHorizontal="true" />
    </RelativeLayout>

    <RelativeLayout
        android:id = "@+id/rela1"
        android:layout_width = "match_parent"
        android:layout_height = "wrap_content" >
        <TextView android:id="@+id/lblTitle"
     android:layout_width="fill_parent"
     android:layout_height="wrap_content"
     android:paddingTop="10dp"
     android:textSize="18sp"
     android:text="@string/test"
     android:textColor="#000000"
     android:layout_gravity="left" />
    </RelativeLayout>
    <ScrollView
         android:id = "@+id/scrollview1"
         android:layout_width="match_parent"
         android:layout_height="0dp"
         android:layout_weight="1" >

        <WebView android:id="@+id/lblMessage"
           android:layout_width="fill_parent"
           android:layout_height="wrap_content" />
    </ScrollView>
</LinearLayout>

【讨论】:

  • 谢谢你,但它不符合我的要求。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-09
  • 1970-01-01
  • 1970-01-01
  • 2016-06-14
  • 2017-07-03
  • 1970-01-01
相关资源
最近更新 更多