提问者:小点点

Android-隐藏屏幕外的部分线性布局到右侧


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

共3个答案

匿名用户

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

为layout_width分配与密度无关的像素将导致不同尺寸器件的不同成功。

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

获取屏幕宽度见此帖子:获取屏幕尺寸(以像素为单位)

一旦有了屏幕宽度,就可以按像素分配内部布局尺寸(使用LinearLayout.LayoutParams),按屏幕宽度的百分比计算。

如果您希望左侧布局占屏幕的80%,则使用.8*screen_width作为大小;如果您希望右侧布局溢出屏幕的20%,则使用.4*screen_width作为大小。

匿名用户

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

android:layout_marginRight="-50dp" 

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

匿名用户

你是说这样的事吗

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