【问题标题】:Margin issue w/ Android layouts (ScrollView & Linear)带有 Android 布局的边距问题(滚动视图和线性)
【发布时间】:2012-12-05 01:49:24
【问题描述】:

问题:

我正在尝试删除图像/视图之间的空间,以便看起来背景实际上是一个图像。解决此问题的不同方法或方法将不胜感激。

示例图片:

    <?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:background="#edeab5">

    <ImageView
        android:id="@+id/bgnewsfeedtop"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:layout_marginLeft="5dp"
        android:layout_marginRight="5dp"
        android:layout_marginTop="5dp"
        android:layout_marginBottom="0dp"
        android:src="@drawable/newsfeedtop" />

<LinearLayout
    android:id="@+id/linearLayout2"
    android:layout_width="fill_parent"
    android:layout_height="0dip"
    android:layout_margin="0dp"
    android:layout_weight="1"
    android:orientation="horizontal" >

<ImageView
    android:id="@+id/bgnewsfeedleft"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginLeft="5dp"
    android:layout_marginRight="0dp"
    android:layout_marginTop="0dp"
    android:layout_marginBottom="0dp"
    android:src="@drawable/newsfeedleft" />

    <ScrollView
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/scroller"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:fillViewport="true"
        android:src="@drawable/newsfeedbg" >

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:cacheColorHint="@android:color/transparent"
            android:orientation="vertical" >

            <ImageView
                android:id="@+id/btn1_news_feed"
                android:layout_width="280dp"
                android:layout_height="50dp"
                android:layout_gravity="center_horizontal"
                android:layout_margin="2dp"
                android:src="@drawable/filler" />

            <ImageView
                android:id="@+id/btn2_news_feed"
                android:layout_width="280dp"
                android:layout_height="50dp"
                android:layout_gravity="center_horizontal"
                android:layout_margin="2dp"
                android:src="@drawable/filler" />

            <ImageView
                android:id="@+id/btn3_news_feed"
                android:layout_width="280dp"
                android:layout_height="50dp"
                android:layout_gravity="center_horizontal"
                android:layout_margin="2dp"
                android:src="@drawable/filler" />

            <ImageView
                android:id="@+id/btn4_news_feed"
                android:layout_width="280dp"
                android:layout_height="50dp"
                android:layout_gravity="center_horizontal"
                android:layout_margin="2dp"
                android:src="@drawable/filler" />

            <ImageView
                android:id="@+id/btn5_news_feed"
                android:layout_width="280dp"
                android:layout_height="50dp"
                android:layout_gravity="center_horizontal"
                android:layout_margin="2dp"
                android:src="@drawable/filler" />

            <ImageView
                android:id="@+id/btn6_news_feed"
                android:layout_width="280dp"
                android:layout_height="50dp"
                android:layout_gravity="center_horizontal"
                android:layout_margin="2dp"
                android:src="@drawable/filler" />

            <ImageView
                android:id="@+id/btn7_news_feed"
                android:layout_width="280dp"
                android:layout_height="50dp"
                android:layout_gravity="center_horizontal"
                android:layout_margin="2dp"
                android:src="@drawable/filler" />
        </LinearLayout>
    </ScrollView>

    <ImageView
    android:id="@+id/bgnewsfeedright"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginLeft="0dp"
    android:layout_marginRight="5dp"
    android:layout_marginTop="0dp"
    android:layout_marginBottom="0dp"
    android:src="@drawable/newsfeedright" />
</LinearLayout>

<ImageView
    android:id="@+id/bgnewsfeedbot"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center_horizontal"
    android:layout_marginLeft="5dp"
    android:layout_marginRight="5dp"
    android:layout_marginTop="0dp"
    android:src="@drawable/newsfeedbot" />

<LinearLayout
    android:id="@+id/linearLayout1"
    android:layout_width="fill_parent"
    android:layout_height="75dp"
    android:orientation="horizontal" >

    <ImageView
        android:id="@+id/menu_house_manager"
        android:layout_width="55dp"
        android:layout_height="55dp"
        android:layout_margin="12dp"
        android:src="@drawable/btnhousemanager"  />

    <ImageView
        android:id="@+id/menu_house_manager2"
        android:layout_width="55dp"
        android:layout_height="55dp"
        android:layout_margin="12dp"
        android:src="@drawable/btnhousemanager"  />

    <ImageView
        android:id="@+id/menu_house_manager3"
        android:layout_width="55dp"
        android:layout_height="55dp"
        android:layout_margin="12dp"
        android:src="@drawable/btnhousemanager"  />

    <ImageView
        android:id="@+id/menu_house_manager4"
        android:layout_width="55dp"
        android:layout_height="55dp"
        android:layout_margin="12dp"
        android:src="@drawable/btnhousemanager"  />

</LinearLayout>

<LinearLayout
    android:id="@+id/linearLayout2"
    android:layout_width="fill_parent"
    android:layout_height="100dp"
    android:layout_alignParentLeft="true"
    android:orientation="horizontal" >

    <ImageView
        android:id="@+id/menu_house_manager"
        android:layout_width="55dp"
        android:layout_height="55dp"
        android:layout_margin="12dp"
        android:src="@drawable/btnhousemanager"  />

    <ImageView
        android:id="@+id/menu_house_manager2"
        android:layout_width="55dp"
        android:layout_height="55dp"
        android:layout_margin="12dp"
        android:src="@drawable/btnhousemanager"  />

    <ImageView
        android:id="@+id/menu_house_manager3"
        android:layout_width="55dp"
        android:layout_height="55dp"
        android:layout_margin="12dp"
        android:src="@drawable/btnhousemanager"  />

    <ImageView
        android:id="@+id/menu_house_manager4"
        android:layout_width="55dp"
        android:layout_height="55dp"
        android:layout_margin="12dp"
        android:src="@drawable/btnhousemanager"  />

</LinearLayout>
</LinearLayout>

编辑****

提供帮助后,修改代码和图片:

<RelativeLayout 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:background="#edeab5" >


   <View
        android:id="@+id/newstop"
        android:layout_width="fill_parent"
        android:layout_alignParentTop="true"
        android:layout_height="15dp"
        android:layout_marginTop="10dp"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:background="@drawable/newsfeedtop"
        />

   <View
        android:id="@+id/newsleft"
        android:layout_height="fill_parent"
        android:layout_width="fill_parent"
        android:layout_marginLeft="10dp"
        android:background="@drawable/newsfeedleft"

        android:layout_toLeftOf="@+id/scroller"
        android:layout_below="@+id/newstop"
        android:layout_above="@+id/newsbottom"
        />

   <View
        android:id="@+id/newsleft"
        android:layout_height="fill_parent"
        android:layout_width="fill_parent"
        android:layout_marginRight="10dp"
        android:background="@drawable/newsfeedright"

        android:layout_toRightOf="@+id/scroller"
        android:layout_below="@+id/newstop"
        android:layout_above="@+id/newsbottom"
        />


   <ScrollView
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/scroller"
        android:layout_width="wrap_content"
        android:layout_height="150dp"
        android:layout_centerInParent="true"
        android:fillViewport="true"
        android:background="#000000"
        android:layout_below="@+id/newstop">

        <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="#cc0000" >



            <ImageView
                android:id="@+id/btn1_news_feed"
                android:layout_width="280dp"
                android:layout_height="50dp"
                android:layout_gravity="center_horizontal"
                android:layout_margin="2dp"
                android:background="#000000"
                android:contentDescription="@string/app_name" />

            <ImageView
                android:id="@+id/btn2_news_feed"
                android:layout_width="280dp"
                android:layout_height="50dp"
                android:layout_gravity="center_horizontal"
                android:layout_margin="2dp"
                android:layout_below="@id/btn1_news_feed"
                android:background="#000000"
                android:contentDescription="@string/app_name"/>

            <ImageView
                android:id="@+id/btn3_news_feed"
                android:layout_width="280dp"
                android:layout_height="50dp"
                android:layout_gravity="center_horizontal"
                android:layout_margin="2dp"
                android:layout_below="@id/btn2_news_feed"
                android:background="#000000"
                android:contentDescription="@string/app_name" />

            <ImageView
                android:id="@+id/btn4_news_feed"
                android:layout_width="280dp"
                android:layout_height="50dp"
                android:layout_gravity="center_horizontal"
                android:layout_margin="2dp"
                android:layout_below="@id/btn3_news_feed"
                android:background="#000000"
                android:contentDescription="@string/app_name" />

            <ImageView
                android:id="@+id/btn5_news_feed"
                android:layout_width="280dp"
                android:layout_height="50dp"
                android:layout_gravity="center_horizontal"
                android:layout_margin="2dp"
                android:layout_below="@id/btn4_news_feed"
                android:background="#000000"
                android:contentDescription="@string/app_name" />


            </RelativeLayout>
            </ScrollView>

   <View
        android:id="@+id/newsbottom"
        android:layout_width="fill_parent"
        android:layout_height="15dp"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:background="@drawable/newsfeedbot"
        android:layout_below="@+id/scroller"
        />

   <LinearLayout
    android:id="@+id/buttonsrow1"
    android:layout_width="fill_parent"
    android:layout_height="75dp"
    android:orientation="horizontal"
    android:layout_marginTop="12dp"
    android:layout_below="@+id/newsbottom">

    <ImageView
        android:id="@+id/menu_house_manager"
        android:layout_width="55dp"
        android:layout_height="55dp"
        android:layout_margin="12dp"
        android:src="@drawable/btnhousemanager"  />

    <ImageView
        android:id="@+id/menu_house_manager2"
        android:layout_width="55dp"
        android:layout_height="55dp"
        android:layout_margin="12dp"
        android:src="@drawable/btnhousemanager"  />

    <ImageView
        android:id="@+id/menu_house_manager3"
        android:layout_width="55dp"
        android:layout_height="55dp"
        android:layout_margin="12dp"
        android:src="@drawable/btnhousemanager"  />

    <ImageView
        android:id="@+id/menu_house_manager4"
        android:layout_width="55dp"
        android:layout_height="55dp"
        android:layout_margin="12dp"
        android:src="@drawable/btnhousemanager"  />

</LinearLayout>

   <LinearLayout
       android:id="@+id/buttonsrow2"
       android:layout_width="fill_parent"
       android:layout_height="75dp"
       android:layout_below="@+id/buttonsrow1"
       android:orientation="horizontal" >

    <ImageView
        android:id="@+id/menu_house_manager"
        android:layout_width="55dp"
        android:layout_height="55dp"
        android:layout_margin="12dp"
        android:src="@drawable/btnhousemanager"  />

    <ImageView
        android:id="@+id/menu_house_manager2"
        android:layout_width="55dp"
        android:layout_height="55dp"
        android:layout_margin="12dp"
        android:src="@drawable/btnhousemanager"  />

    <ImageView
        android:id="@+id/menu_house_manager3"
        android:layout_width="55dp"
        android:layout_height="55dp"
        android:layout_margin="12dp"
        android:src="@drawable/btnhousemanager"  />

    <ImageView
        android:id="@+id/menu_house_manager4"
        android:layout_width="55dp"
        android:layout_height="55dp"
        android:layout_margin="12dp"
        android:src="@drawable/btnhousemanager"  />

</LinearLayout>

   </RelativeLayout>

【问题讨论】:

    标签: android android-layout scrollview margin android-scrollview


    【解决方案1】:

    你说的是黑线吗?我不认为我理解你的问题...

    您正在“手动列表视图”中进行操作(我的意思是:您应该使用列表视图和自定义适配器来添加 N 个新闻源,而不是使用滚动视图和线性布局):

    android:layout_margin="2dp"
    

    这将设置右、左、上、下边距。改为这样做:

    android:layout_marginRight="2dp"
    android:layout_marginLeft="2dp"
    

    【讨论】:

    • 黑线是 ScrollView 的一部分。我说的是包含黑线的红色框之间的边距。顶栏和侧边栏之间有间距,我想去掉,侧边栏和底栏之间也是如此。
    【解决方案2】:

    您是否已经对相关布局做过一些事情?

    这就是我要解决的方法。 您通过

    给每个视图一个 id
    android:id = "@+id/whateveryouwanttonameit"
    

    然后您可以通过引用此 id 来对齐其他视图。

    例如:

    <ImageButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:id="@+id/newGameButton"
        android:text="@string/newGameButton"
        android:background="@drawable/newgame"
        android:contentDescription="@string/feld"/>
    
    <ImageView 
        android:layout_alignLeft="@id/newGameButton"
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:layout_above="@id/newGameButton"
        android:src="@drawable/x"
        android:id="@+id/sp2"
        android:contentDescription="@string/feld"/>
    

    在本例中,ImageViews 的左边缘通过使用以下方法与 ImageButton 的左边缘对齐:

    android:layout_alignLeft="@id/newGameButton"
    

    它也正好在 newGameButton 的上方,通过添加中间没有任何空格

    android:align_above="@id/newGameButton"
    

    这样您就可以构建整个活动布局。

    所以这里是例子:

    <RelativeLayout 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:background="#FFFFFF" >
    
    
       <View
            android:layout_width="fill_parent"
            android:layout_height="15dp"
            android:background="#FF0000"
            android:layout_above="@id/scroller"
            />
    
    
       <ScrollView
            xmlns:android="http://schemas.android.com/apk/res/android"
            android:id="@+id/scroller"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerInParent="true"
            android:fillViewport="true"
            android:background="#000000">
    
            <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
            xmlns:tools="http://schemas.android.com/tools"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="#00FF00" >
    
    
    
                <ImageView
                    android:id="@+id/btn1_news_feed"
                    android:layout_width="280dp"
                    android:layout_height="50dp"
                    android:layout_gravity="center_horizontal"
                    android:layout_margin="2dp"
                    android:background="#000000"
                    android:contentDescription="@string/app_name" />
    
                <ImageView
                    android:id="@+id/btn2_news_feed"
                    android:layout_width="280dp"
                    android:layout_height="50dp"
                    android:layout_gravity="center_horizontal"
                    android:layout_margin="2dp"
                    android:layout_below="@id/btn1_news_feed"
                    android:background="#000000"
                    android:contentDescription="@string/app_name"/>
    
                <ImageView
                    android:id="@+id/btn3_news_feed"
                    android:layout_width="280dp"
                    android:layout_height="50dp"
                    android:layout_gravity="center_horizontal"
                    android:layout_margin="2dp"
                    android:layout_below="@id/btn2_news_feed"
                    android:background="#000000"
                    android:contentDescription="@string/app_name" />
    
                <ImageView
                    android:id="@+id/btn4_news_feed"
                    android:layout_width="280dp"
                    android:layout_height="50dp"
                    android:layout_gravity="center_horizontal"
                    android:layout_margin="2dp"
                    android:layout_below="@id/btn3_news_feed"
                    android:background="#000000"
                    android:contentDescription="@string/app_name" />
    
                <ImageView
                    android:id="@+id/btn5_news_feed"
                    android:layout_width="280dp"
                    android:layout_height="50dp"
                    android:layout_gravity="center_horizontal"
                    android:layout_margin="2dp"
                    android:layout_below="@id/btn4_news_feed"
                    android:background="#000000"
                    android:contentDescription="@string/app_name" />
    
    
                </RelativeLayout>
                </ScrollView>
    
    
       </RelativeLayout>
    

    给我这个布局:

    我保留了 margin 属性并将滚动视图的背景设为绿色。

    使用下面的属性我做了布局。

    为了向您展示如果您不定义元素之间没有空格,我添加了一个没有边距属性的红色视图元素。

    我还没有为你完成整个布局,只是复制了其中的一些来展示你如何使用RelativeLayout 来完成它。我希望这对你有用;)

    【讨论】:

    • Hmm.. 这似乎是组装包含 ScrollView 的框的好方法,但是在 RelativeLayout 中定位 ScrollView 会成为问题吗?我会解决这个问题,如果我能让它工作,我会“接受”你的回答。感谢您的帮助!
    • 我重读了你的问题,我只是想复杂化。只需删除红框视图中的边距即可。
    • 进行了您建议的修改。奇迹般有效!感谢您的帮助(我修改后的布局和图像 [将] 发布)。
    猜你喜欢
    • 2011-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多