android - 隐藏部分线性布局屏幕右侧

时间:2013-06-28 22:30:00

标签: android android-layout android-linearlayout

我在父线性布局中有两个线性布局。全部水平。我希望展示所有l_child并展示r_child的一部分;而r_child的其余部分将在屏幕右侧。我该如何做到这一点?

<LinearLayout

    android:orientation="horizontal" >

    <LinearLayout
        android:id="@+id/l_child"
        android:orientation="horizontal" >
    </LinearLayout>

    <LinearLayout
        android:id="@+id/r_child"
        android:orientation="horizontal" >
    </LinearLayout>

</LinearLayout>

4 个答案:

答案 0 :(得分:4)

尝试为父LinearLayout提供负右边距。

android:layout_marginRight="-50dp" 

其他解决方案可能是将父LinearLayout置于ScrollView内,并将子布局的宽度设置为所需的宽度。在这种情况下,您将能够将正确的布局滚动回屏幕。

答案 1 :(得分:0)

你的意思是这样吗

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

<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_weight="1"
android:orientation="horizontal"
>

<LinearLayout
    android:layout_width="0dp"
    android:layout_weight="1"
    android:layout_height="70dp"
    android:layout_gravity="center_horizontal|top">

    <ImageView
        android:layout_width="48dp"
        android:layout_height="48dp"
        android:id="@+id/imageView1"
        android:src="@drawable/ic_launcher"
        />
    <ImageView
        android:layout_width="48dp"
        android:layout_height="48dp"
        android:id="@+id/imageView2"
        android:src="@drawable/ic_launcher"/>
    <ImageView
        android:layout_width="48dp"
        android:layout_height="48dp"
        android:id="@+id/imageView3"
        android:src="@drawable/ic_launcher"/>
</LinearLayout>

<LinearLayout
    android:layout_width="0dp"
    android:layout_weight="1"
    android:layout_height="70dp"
    android:layout_gravity="center_horizontal|top">


    <ImageView
        android:layout_width="48dp"
        android:layout_height="48dp"
        android:id="@+id/imageView1"
        android:layout_marginRight="200dp"
        android:src="@drawable/ic_launcher"/>
    <ImageView
        android:layout_width="48dp"
        android:layout_height="48dp"
        android:id="@+id/imageView2"
        android:src="@drawable/ic_launcher"/>
    <ImageView
        android:layout_width="48dp"
        android:layout_height="48dp"
        android:id="@+id/imageView3"
        android:src="@drawable/ic_launcher"/>
</LinearLayout>
</LinearLayout>

答案 2 :(得分:0)

您可以尝试使用ViewPager,但我不知道您是否可以获得使用该UI组件描述的“流血画布”效果。

编辑:也许你可以尝试使用Gallery小部件。

这是你所描述的吗?

http://www.bangkokpost.com/media/content/20110915/309542.jpg

答案 3 :(得分:0)

布局权重仅用于分布布局以填充视图,因此不会以这种方式进行溢出。

使用与密度无关的像素分配layout_width将为不同尺寸的设备带来不同的成功。

所以我相信你会更成功地根据屏幕尺寸以编程方式添加布局。

请参阅此帖子以获取屏幕宽度: Get screen dimensions in pixels

获得屏幕宽度后,您可以按像素(使用LinearLayout.LayoutParams)指定内部布局尺寸,计算为屏幕宽度的百分比。

如果您希望左侧布局占据屏幕的80%,请使用.8 * screen_width作为大小,如果您希望正确的布局然后溢出20%的屏幕,请使用.4 * screen_width那个大小。