在父线性布局中有两个线性布局。都是水平的。我希望显示所有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>
布局权重仅用于分发布局以填充视图,因此这种方式不会溢出。
为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>