2013-06-28 38 views
1

我在父线性布局内部有两个线性布局。全部水平。我想全部显示l_child并显示部分r_child;而r_child的其余部分将在屏幕右侧显示。我如何实现这一目标?android - 隐藏部分线性布局在屏幕外向右

<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> 
+0

你可以发布你想要做什么的原理图吗? – Emmanuel

+0

不知道我理解,但在这里:如果你愿意,每个孩子的图像线性布局有三个图像浏览;那么我想要显示左侧孩子的所有三张图像,但只显示右侧孩子的第一张图片;而其余两个隐藏在屏幕右侧。 –

+0

by schematic我的意思是显示你想完成什么的一个小图画 – Emmanuel

回答

0

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

使用与密度无关的像素分配layout_width将导致不同大小设备的成功不同。

所以我相信你会有更多的成功添加你的布局基于屏幕尺寸的编程。

查看此信息用于获取屏幕宽度: Get screen dimensions in pixels

一旦你的屏幕宽度,则可以通过像素分配的内布局尺寸(与LinearLayout.LayoutParams),如屏幕宽度的百分比来计算。

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

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> 
4

先给家长LinearLayout负右边缘。

android:layout_marginRight="-50dp" 

其他解决办法可能是把父LinearLayout一个ScrollView内,并设置儿童布局的宽度以所需的宽度。在这种情况下,您可以将右侧布局滚动回屏幕。

+0

我不认为负面的尺寸在android中工作。 – eski

+0

AFAIK他们这样做。 http://stackoverflow.com/questions/10673503/is-it-a-bad-practice-to-use-negative-margins-in-android我会很快检查它以防万一。 –

+0

有趣的是,我以为我记得以前试过它没有成功 – eski