android studio:点击时自动推送/组织按钮

问题描述 投票:0回答:1

我目前正在为我的学期做一个小项目,当时我在设计 figma 时遇到问题,准备实施。 问题很简单,当用户按下 4 个按钮之一时,按下的按钮会被向上推,如果用户再次按下取消,它会回到原来的位置。

图片示例: https://i.stack.imgur.com/CiOBL.jpg

我确实尝试使用 3 个列表视图来解决这个问题,2 个包含其他按钮,1 个仅在按下按钮时出现,但由于我缺乏知识而失败,承认这让我很困惑。

所以如果有人能帮助我,我真的很感激,提前谢谢你。

java android button
1个回答
0
投票

经过几天的研究,我找到了一种方法来帮助我得到我想要的东西。其实很好笑,也很简单。

你需要的是调用包含按钮的布局,从该布局中删除子视图(按钮)并添加另一个布局。

首先在 xml 中创建 2 个布局,在我的例子中我需要 3:

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity" >

    <LinearLayout
        android:id="@+id/one"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">

    </LinearLayout>

    <LinearLayout
        android:id="@+id/two"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:orientation="horizontal">

        <Button
            android:id="@+id/men"
            android:layout_width="200dp"
            android:layout_height="50dp"
            android:text="Mens"
            ></Button>

        <Button
            android:id="@+id/women"
            android:layout_width="200dp"
            android:layout_height="50dp"
            android:text="Womens"
            ></Button>

    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:orientation="horizontal">

        <Button
            android:id="@+id/boys"
            android:layout_width="200dp"
            android:layout_height="50dp"
            android:text="Boys"
            ></Button>

        <Button
            android:id="@+id/girl"
            android:layout_width="200dp"
            android:layout_height="50dp"
            android:text="Girls"
            ></Button>

    </LinearLayout>
    </LinearLayout>

之后调用并使用 removeView、addView:

    package com.example.pushbutton;

    import androidx.appcompat.app.AppCompatActivity;

    import android.os.Bundle;
    import android.view.View;
    import android.widget.Button;
    import android.widget.LinearLayout;

    public class MainActivity extends AppCompatActivity {
    Button men,women,boy,girl;
    LinearLayout one,two;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        men = findViewById(R.id.men);
        women = findViewById(R.id.women);
        boy = findViewById(R.id.boys);
        girl = findViewById(R.id.girl);
        one = findViewById(R.id.one);
        two = findViewById(R.id.two);

        men.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                two.removeView(men);
                one.addView(men);
            }
        });

    }
    }
© www.soinside.com 2019 - 2024. All rights reserved.