在我的Android应用程序上,我有两个水平滚动视图作为停靠点。如何点击按钮1,如果单击停靠栏1,如果单击按钮2,则会显示停靠栏2?由于他们需要停靠,我希望他们都能在同一个位置显示。
这是我的代码:
<HorizontalScrollView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="50dp">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button1" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button2" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button3" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button4" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button5" />
</LinearLayout>
</HorizontalScrollView>
<HorizontalScrollView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="50dp">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button1" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button2" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button3" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button4" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button5" />
</LinearLayout>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="dockButton1" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="dockButton2" />
按钮代码:
dock1button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
}
});
dock2button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
}
});
答案 0 :(得分:1)
第1步:
在HorizontalScrollView中添加id
例如:android:id="@+id/hScrollView1"
和android:id="@+id/hScrollView2"
第2步: 将HorizontalScrollView放在父LinearLayout中,如下所示:
<LinearLayout>
<HorizontalScrollView
android:id="@+id/hScrollView1">
.
.
</HorizontalScrollView>
<HorizontalScrollView
android:id="@+id/hScrollView2">
.
.
</HorizontalScrollView>
</LinearLayout>
第3步: 在您的按钮中单击以切换可见性: 在onClick上只需使用..
hScrlView1.setVisibility(View.GONE);
hScrlView2.setVisibility(View.VISIBLE);
和
hScrlView1.setVisibility(View.VISIBLE);
hScrlView2.setVisibility(View.GONE);
其中hScrlView1和hScrlView2是您要显示的ScrollView。
答案 1 :(得分:1)
将两个水平列表视图放在相对布局中,并将其中一个的可见性设置为不可见。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<HorizontalScrollView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="50dp" >
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button1" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button2" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button3" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button4" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button5" />
</LinearLayout>
</HorizontalScrollView>
<HorizontalScrollView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="50dp"
android:visibility="invisible" >
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button1" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button2" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button3" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button4" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button5" />
</LinearLayout>
</HorizontalScrollView>
</RelativeLayout>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="dockButton1" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="dockButton2" />
然后更改按钮中的可见性&#39;代码:
按钮代码:
dock1button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
horizontalList2.setVisibilty(View.INVISIBLE);
horizontalList1.setVisibilty(View.VISIBLE);
}
});
dock2button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
horizontalList1.setVisibilty(View.INVISIBLE);
horizontalList2.setVisibilty(View.VISIBLE);
}
});
答案 2 :(得分:1)
仅使用包含两个滚动视图的FrameLayout
,您会感觉更好。它比使用LinearLayout
甚至更差RelativeLayout
更具性能。
做这样的事情(原理图代码,省略了一些xml attrs)
<FrameLayout>
<HorizontalScrollView
android:id="@+id/view1"/>
<HorizontalScrollView
android:id="@+id/view2"
android:visibility="gone"
/>
</FrameLayout>
然后在你的onClick处理程序中执行类似
的操作view1.setVisibility(View.VISIBLE)
view2.setVisibility(View.GONE)
反之亦然(取决于按下的按钮)