我正在尝试制作具有可滚动layout
的Android应用程序,可以垂直和水平滚动不同的其他layouts
,我希望这些不同布局的每个布局都适合屏幕宽度,几乎适合高度,请看下图,说明我想要做的事情:
我只是尝试将这些布局的所有宽度和高度设置为match_parent
,并将所有这些布局放在 main_layout 中分配了match_parent
个参数,然后我创建了一个Layout
并将Layouts(4,1,5)放入其中并将此Layout
放入ScrollView
,然后我将 main_layout 布局放在包含三个布局(Layout3,Layout(4,1,5),Layout2)的HorizontalScrollView
中,但这给了我一个受干扰的布局视图。
<HorizontalScrollView
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="0.9" >
<!-- just to give it 0.9 of the screen in order to give a space to the top layout (it takes 0.1 and the weight sum is 1) -->
<LinearLayout
android:id="@+id/main_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="horizontal" >
<LinearLayout
android:id="@+id/Layout3"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
</LinearLayout>
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scrollbars="none" >
<LinearLayout
android:id="@+id/Layouts(4,1,5)"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center"
android:orientation="vertical" >
<LinearLayout
android:id="@+id/Layout4"
android:layout_width="match_parent"
android:layout_height="match_parent" >
</LinearLayout>
<LinearLayout
android:id="@+id/Layout1"
android:layout_width="match_parent"
android:layout_height="match_parent" >
</LinearLayout>
<LinearLayout
android:id="@+id/Layout5"
android:layout_width="match_parent"
android:layout_height="match_parent" >
</LinearLayout>
</LinearLayout>
</ScrollView>
<LinearLayout
android:id="@+id/Layout2"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
</LinearLayout>
</LinearLayout>
</HorizontalScrollView>
答案 0 :(得分:1)
我试试这个:
RelativeLayout
代替ScrollView
LinearLayout
的所有match_parent
,以编程方式进行转换:
Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
int sw = size.x; // screen width
int sh = size.y; // screen height
LinearLayout lay2 = (LinearLayout) findViewById(R.id.Layout2);
lay2.setTranslationX = sw;
LinearLayout lay3 = (LinearLayout) findViewById(R.id.Layout3);
lay2.setTranslationX = -sw;
LinearLayout lay4 = (LinearLayout) findViewById(R.id.Layout4);
lay2.setTranslationY = -sh;
LinearLayout lay5 = (LinearLayout) findViewById(R.id.Layout5);
lay2.setTranslationY = sh;
然后触摸RelativeLayout
上可以控制滑动,改变其位置的侦听器。
答案 1 :(得分:0)