1

我在父线性布局中有两个线性布局。都是水平的。我希望全部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

4 回答 4

6

尝试给父母LinearLayout一个负的右边距。

android:layout_marginRight="-50dp" 

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

于 2013-06-28T23:17:15.187 回答
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>
于 2013-06-28T23:04:43.367 回答
0

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

编辑:也许您可以尝试使用图库小部件。

这是你描述的吗?

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

于 2013-06-28T23:09:40.623 回答
0

布局权重仅用于分配布局以填充视图,因此无法通过这种方式进行溢出。

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

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

请参阅这篇文章以获取屏幕宽度: 获取屏幕尺寸(以像素为单位)

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

如果您希望左侧布局占据屏幕的 80%,请使用 .8*screen_width 作为尺寸,如果您希望右侧布局然后溢出屏幕的 20%,请使用 .4*screen_width 作为该尺寸。

于 2013-06-28T23:23:19.347 回答