无法在水平ScrollView中的视图之间提供空间

时间:2013-06-26 06:43:33

标签: android

main xml:

    <HorizontalScrollView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/navlayout"
        android:id="@+id/scroll"
        android:padding="0dp"> 

         <LinearLayout

            android:id="@+id/horizontallayout"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:padding="10dp"
            android:layout_marginLeft="10dp"

            android:orientation="horizontal"
             /> 

 </HorizontalScrollView>

添加了布局:

 <RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
                    android:id="@+id/fblayout1"
                    android:layout_width="300dp"

                    android:layout_height="fill_parent"
                    android:background="@drawable/facebook1_texture"
                    android:orientation="vertical"
                    android:padding="5dp" >

                    <RelativeLayout
                        android:id="@+id/navlayout1"
                        android:layout_width="fill_parent"
                        android:layout_height="wrap_content" >

                        <ImageView
                            android:id="@+id/image"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_alignParentLeft="true"
                            android:layout_centerInParent="true"
                            android:src="@drawable/facebook_small" />

                        <TextView
                            android:id="@+id/textheader1"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_centerInParent="true"
                            android:text="Facebook"
                            android:textColor="#ffffff"
                            android:textSize="20dp"
                            android:textStyle="bold" />

                        <ImageView
                            android:id="@+id/settings1"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_alignParentRight="true"
                            android:layout_centerInParent="true"
                            android:layout_marginRight="5dp"
                            android:background="@drawable/settins_icon"
                            android:visibility="gone" />

                        <ImageView
                            android:id="@+id/close1"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_alignParentRight="true"
                            android:layout_centerInParent="true"
                            android:layout_marginRight="5dp"
                            android:background="@drawable/cross_icon"
                            android:visibility="gone" />
                    </RelativeLayout>

                    <TextView

                        android:id="@+id/note1"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_below="@+id/navlayout1"
                        android:padding="5dp"
                        android:text="My Dashboard needs your permission to access your Facebook account before displaying your feed. Login below to give your permission. You will be sent to Facebook first to confirm this."
                        android:textColor="#ffffff"
                        android:textSize="18dp" />

                    <ListView
                        android:id="@+id/list1"
                        android:layout_width="fill_parent"
                        android:layout_height="fill_parent"
                        android:layout_below="@+id/navlayout1"
                        android:padding="5dp"
                        android:visibility="gone">
                    </ListView>

                    <RelativeLayout
                        android:id="@+id/centerlayout1"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_centerInParent="true"
                        android:visibility="gone" >

                        <ImageView
                            android:id="@+id/fbimage1"
                            android:layout_width="100dp"
                            android:layout_height="100dp"
                            android:layout_centerInParent="true" />

                        <TextView
                            android:id="@+id/text1"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_below="@+id/fbimage1"
                            android:layout_centerHorizontal="true"
                            android:layout_marginTop="20dp"
                            android:text="Facebook"
                            android:textColor="#ffffff"
                            android:textSize="15dp" />
                    </RelativeLayout>

                    <com.databoard.facebook.LoginButton
                        android:id="@+id/fb1"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_alignParentBottom="true"
                        android:background="@drawable/login_btn"
                        android:layout_marginBottom="20dp" />

                    <ImageView
                        android:id="@+id/logout1"
                        android:layout_marginBottom="20dp"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_alignParentBottom="true"
                        android:layout_centerHorizontal="true"
                        android:background="@drawable/logout_btn"
                        android:padding="10dp"
                        android:visibility="gone" />
                </RelativeLayout>

添加视图的代码:

      view= getLayoutInflater().inflate(R.layout.fblayout, null);
RelativeLayout.LayoutParams llp=new RelativeLayout.LayoutParams(400,LayoutParams.WRAP_CONTENT);

  llp.setMargins(0, 0, 100, 0);
  view.setLayoutParams(llp);

  llTotal.addView(view);

上面的代码我用来向Horizo​​ntal Scrollview添加视图,但是我没有在添加的视图之间获得空间。

我尝试给Linearlayout和Added xml提供填充,但它对我没用。  我不明白为什么                   llp.setMargins(0,0,100,0);
    对我的情况不起作用。

3 个答案:

答案 0 :(得分:1)

我有类似的问题。我尝试在任何地方添加边距和填充,而且Horizo​​ntalScrollView的子视图仍然没有间隙。

最后我使用了这个解决方法:在每个子视图中,我使用了一个LinearLayout,并在我的“真实”内容之前和之后添加了“spacer”TextView元素(带有空格作为文本的TextView)。因此,这些间隔TextViews就成了差距。

答案 1 :(得分:0)

我不确定我理解您的代码以及您要实现的目标。您正在为通过膨胀fblayout.xml创建的超级视图添加边距。如果我理解你的代码应该是RelativeLayout。但是,您将这个relativelayout添加到LinearLayout中的main.xml。因此在RelativeLayout的子视图上使用LinearLayout参数不起作用。 说实话,我会期待一些例外,因为根据他们的直接父母,所有子视图总是有布局参数。这意味着您通常需要在代码中的LinearLayout.LayoutParams变量上设置view

无论如何,我的建议是在xml中RelativeLayout配置边距。

 <RelativeLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
                android:id="@+id/fblayout1"
                android:layout_width="300dp"
                android:layout_height="fill_parent"
==>             android:layout_marginLeft="10dp"


                android:background="@drawable/facebook1_texture"
                android:orientation="vertical"
                android:padding="5dp" >

删除程序化布局代码。没有试过这个,但它应该做的伎俩。

您可能考虑的一件事是在Eclipse中使用Hierarchy Viewer并在设备或模拟器上检查生成的视图层次结构。至少那时你可以看到你的哪些设置。

最后,您可以做的最后一个技巧是在main.xml中静态构建整个布局并对其进行配置,使其看起来像您想要的那样。只有这样你才能开始变得动态。

答案 2 :(得分:0)

请在添加的布局上设置填充。

<RelativeLayout
    android:id="@+id/navlayout1"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:background="@android:color/darker_gray" >

    <RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" >

        <ImageView
            android:id="@+id/image"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_centerInParent="true" />

        <TextView
            android:id="@+id/textheader1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerInParent="true"
            android:text="Facebook"
            android:textColor="#ffffff"
            android:textSize="20dp"
            android:textStyle="bold" />

        <ImageView
            android:id="@+id/settings1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:layout_centerInParent="true"
            android:layout_marginRight="5dp"
            android:visibility="gone" />

        <ImageView
            android:id="@+id/close1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:layout_centerInParent="true"
            android:layout_marginRight="5dp"
            android:background="@drawable/cross_icon"
            android:visibility="gone" />
    </RelativeLayout>

    <TextView
        android:id="@+id/note1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/navlayout1"
        android:padding="5dp"
        android:text="My Dashboard needs your permission to access your Facebook account before displaying your feed. Login below to give your permission. You will be sent to Facebook first to confirm this."
        android:textColor="#ffffff"
        android:textSize="18dp" />

    <ListView
        android:id="@+id/list1"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_below="@+id/navlayout1"
        android:padding="5dp"
        android:visibility="gone" >
    </ListView>

    <RelativeLayout
        android:id="@+id/centerlayout1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:visibility="gone" >

        <ImageView
            android:id="@+id/fbimage1"
            android:layout_width="100dp"
            android:layout_height="100dp"
            android:layout_centerInParent="true" />

        <TextView
            android:id="@+id/text1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@+id/fbimage1"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="20dp"
            android:text="Facebook"
            android:textColor="#ffffff"
            android:textSize="15dp" />
    </RelativeLayout>

    <Button
        android:id="@+id/fb1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_marginBottom="20dp"
        android:background="@drawable/login_btn" />

    <ImageView
        android:id="@+id/logout1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true"
        android:layout_marginBottom="20dp"
        android:padding="10dp"
        android:visibility="gone" />
</RelativeLayout>