gpt4 book ai didi

android - AbsoluteLayout 上的 ScrollView 部分丢失内容问题

转载 作者:行者123 更新时间:2023-11-30 04:46:19 25 4
gpt4 key购买 nike

我有以下布局:

<AbsoluteLayout android:layout_width="fill_parent"
android:id="@+id/absoluteLayout1" android:layout_height="wrap_content"
xmlns:android="http://schemas.android.com/apk/res/android">
<TextView android:layout_width="fill_parent" android:layout_x="0dip"
android:id="@+id/textView1" android:layout_height="wrap_content"
android:text="Hello" android:layout_y="0dip"></TextView>
<ScrollView android:layout_x="0dip" android:layout_y="100dip"
android:id="@+id/ScrollView01" android:layout_width="fill_parent"
android:layout_height="fill_parent" android:scrollbars="vertical">

<LinearLayout android:id="@+id/LinearLayout01"
android:layout_width="fill_parent" android:layout_height="fill_parent"
android:layout_weight="0" android:orientation="vertical"
xmlns:android="http://schemas.android.com/apk/res/android">

</LinearLayout>

</ScrollView>

</AbsoluteLayout>

还有一个简短的代码:

public class LayoutTest extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
LinearLayout linerLayout=(LinearLayout)findViewById(R.id.LinearLayout01);

for (int i=1;i<=20;i++) {
Button b=new Button(this);
b.setText("Button "+i);
linerLayout.addView(b,0);
}

}
}

我的问题是:我没有看到我生成的最后两个按钮!

我发现这是因为 ScrollView 在 android:layout_y="100dip"中有一个 Y 值。

这100个像素和我没看到的一模一样。

如果我在 100 像素高度的按钮后放置一个空 View :

<ScrollView android:layout_x="0dip" android:layout_y="100dip"
android:id="@+id/ScrollView01" android:layout_width="fill_parent"
android:layout_height="fill_parent" android:scrollbars="vertical">

<LinearLayout android:id="@+id/LinearLayout01"
android:layout_width="fill_parent" android:layout_height="fill_parent"
android:layout_weight="0" android:orientation="vertical"
xmlns:android="http://schemas.android.com/apk/res/android">

<TextView android:layout_width="fill_parent" android:text=""
android:id="@+id/TextViewGap" android:layout_height="100px"
android:background="#ff0000"></TextView>
</LinearLayout>

</ScrollView>

然后我看到每个按钮。如果我为 TextView 设置 101 像素,那么我会在屏幕底部看到一条红线。

我的问题是:当我的 ScrollView 在 AbsoluteLayout 上有 Y 偏移时,为什么我看不到它的全部内容?

最佳答案

AbsoluteLayout 已弃用,反正可能是因为通过将 ScrollView 的高度设置为 fill_parent 它得到了整个布局的高度,而不是考虑到 100dip 偏移量。

考虑使用 RelativeLayout,它通常可以更有效地完成其他复杂布局(如嵌套的水平/垂直 LinearLayouts)所做的工作。

关于android - AbsoluteLayout 上的 ScrollView 部分丢失内容问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4885213/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com