我希望创建一项活动,就像照片中提到的那样...当我按下最大化按钮时,我希望它变成全屏活动,部分1最小化,当我再次按下还原按钮时,我希望它恢复到初始状态:能够看到第1部分和第2部分...
我认为如果我们放置两个布局是可能的?不是吗?请给我提供有关此问题的资源或展示实现解决方案的代码。
我希望创建一项活动,就像照片中提到的那样...当我按下最大化按钮时,我希望它变成全屏活动,部分1最小化,当我再次按下还原按钮时,我希望它恢复到初始状态:能够看到第1部分和第2部分...
我认为如果我们放置两个布局是可能的?不是吗?请给我提供有关此问题的资源或展示实现解决方案的代码。
第一部分和第二部分应该在它们自己的布局中。然后,尝试使用每个布局的 visibility
属性来操作。具体来说,为了隐藏任何视图而不使其继续占用空间,请使用 gone
作为 visibility 属性的值。
好的,下面是一个完整示例,说明如何隐藏/显示分组视图。
main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<LinearLayout
android:id="@+id/viewsContainer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="5dp" >
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="TextBox One" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:text="TextBox Two" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:text="TextBox Three" />
</LinearLayout>
<Button
android:id="@+id/button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:text="Hide" />
</RelativeLayout>
活动
public class MyActivity extends Activity implements OnClickListener {
private boolean viewGroupIsVisible = true;
private View mViewGroup;
private Button mButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mViewGroup = findViewById(R.id.viewsContainer);
mButton = findViewById(R.id.button);
mButton.setOnClickListener(this);
}
@Override
public void onClick(View button) {
if (viewGroupIsVisible) {
mViewGroup.setVisibility(View.GONE);
mButton.setText("Show");
} else {
mViewGroup.setVisibility(View.VISIBLE);
mButton.setText("Hide");
}
viewGroupIsVisible = !viewGroupIsVisible;
}
我希望这能有所帮助 ;)
有一个比Diego Palomar提出的解决方案更简化,而且不使用额外的变量。我将采用他的代码来展示:
public class MyActivity extends Activity implements OnClickListener {
private View mViewGroup;
private Button mButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mViewGroup = findViewById(R.id.viewsContainer);
mButton = findViewById(R.id.button);
mButton.setOnClickListener(this);
}
@Override
public void onClick(View button) {
if (mViewGroup.getVisibility() == View.VISIBLE) {
mViewGroup.setVisibility(View.GONE);
mButton.setText("Show");
} else {
mViewGroup.setVisibility(View.VISIBLE);
mButton.setText("Hide");
}
}