如何优先考虑应该位于顶部的布局?

时间:2017-09-04 14:46:42

标签: android android-layout

在建筑物中,井字网格布局占据上层,而线性布局占据网格布局正下方的下层。如果任何玩家赢得比赛,则应出现线性布局。在线性布局中,获胜的玩家和将游戏设置为起始位置的按钮。因此,最初我将其设置为隐藏,当游戏结束时线性布局返回到网格布局的背面。如何在网格布局上进行线性布局?

MainActivity.java

package com.example.achyu.tictactao;

import android.graphics.Color;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

//0=yellow  1=red
int currentPlayer=0;

int[] isItDone={2, 2, 2, 2, 2, 2, 2, 2, 2};

//2=yellow  1=red
int[] whoWon=new int[9];

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
}

public void currentCounter(View view){

    ImageView counter= (ImageView) view;

    int tap=Integer.parseInt(counter.getTag().toString());

    if(isItDone[tap]==2){

        counter.setTranslationY(-1000f);
        if(currentPlayer==0){

            counter.setImageResource(R.drawable.yellow);
            currentPlayer=1;
            whoWon[tap]=2;


            if((whoWon[0]==2&&whoWon[1]==2&&whoWon[2]==2)||(whoWon[3]==2&&whoWon[4]==2&&whoWon[5]==2)||
                    (whoWon[6]==2&&whoWon[7]==2&&whoWon[8]==2)||(whoWon[0]==2&&whoWon[3]==2&&whoWon[6]==2)||
                    (whoWon[1]==2&&whoWon[4]==2&&whoWon[7]==2)||(whoWon[2]==2&&whoWon[5]==2&&whoWon[8]==2)||
                    (whoWon[0]==2&&whoWon[4]==2&&whoWon[8]==2)||(whoWon[2]==2&&whoWon[4]==2&&whoWon[6]==2))
            {
                Toast.makeText(this,"Yellow Has Won",Toast.LENGTH_LONG).show();

                LinearLayout layout = (LinearLayout)findViewById(R.id.linearlayout);
                layout.setVisibility(View.VISIBLE);
                TextView winnerText= (TextView) findViewById(R.id.winner);
                winnerText.setText("Yello Won");
                winnerText.setTextColor(Color.WHITE);

            }
        }
        else
        {
            counter.setImageResource(R.drawable.red);
            currentPlayer=0;

            whoWon[tap]=1;

            if((whoWon[0]==1&&whoWon[1]==1&&whoWon[2]==1)||(whoWon[3]==1&&whoWon[4]==1&&whoWon[5]==1)||
                    (whoWon[6]==1&&whoWon[7]==1&&whoWon[8]==1)||(whoWon[0]==1&&whoWon[3]==1&&whoWon[6]==1)||
                    (whoWon[1]==1&&whoWon[4]==1&&whoWon[7]==1)||(whoWon[2]==1&&whoWon[5]==1&&whoWon[8]==1)||
                    (whoWon[0]==1&&whoWon[4]==1&&whoWon[8]==1)||(whoWon[2]==1&&whoWon[4]==1&&whoWon[6]==1))
            {
                Toast.makeText(this,"Red Has Won",Toast.LENGTH_LONG).show();

                LinearLayout layout = (LinearLayout)findViewById(R.id.linearlayout);
                layout.setVisibility(View.VISIBLE);
                TextView winnerText= (TextView) findViewById(R.id.winner);
                winnerText.setText("Red Won");
                winnerText.setTextColor(Color.WHITE);
            }
        }
        counter.animate().translationYBy(1000f).setDuration(300);
        isItDone[tap]=3;


    }
}
}

XML

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout         
     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"
     tools:context="com.example.achyu.tictactao.MainActivity">

<RelativeLayout
    android:layout_width="395dp"
    android:layout_height="587dp"
    tools:layout_editor_absoluteX="8dp"
    tools:layout_editor_absoluteY="8dp">

    <LinearLayout
        android:id="@+id/linearlayout"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:background="@drawable/orange"
        android:orientation="vertical"
        android:padding="60dp"
        android:visibility="invisible">

        <TextView
            android:id="@+id/winner"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:padding="10dp"
            android:text="TextView"
            android:textSize="40sp"
            tools:textColor="#ffffff" />

        <Button
            android:id="@+id/playagain"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="Button" />

    </LinearLayout>

    <GridLayout
        android:layout_width="360dp"
        android:layout_height="360dp"
        android:background="@drawable/board"
        android:columnCount="3"
        android:rowCount="3"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true">

        <ImageView
            android:id="@+id/imageView0"
            android:layout_width="100dp"
            android:layout_height="100dp"
            android:layout_column="0"
            android:layout_marginLeft="10dp"
            android:tag="0"
            android:layout_row="0"
            android:onClick="currentCounter" />

        <ImageView
            android:id="@+id/imageView1"
            android:layout_width="100dp"
            android:layout_height="100dp"
            android:layout_column="1"
            android:layout_marginLeft="20dp"
            android:tag="1"
            android:layout_row="0"
            android:onClick="currentCounter" />

        <ImageView
            android:id="@+id/imageView2"
            android:layout_width="100dp"
            android:layout_height="100dp"
            android:layout_column="2"
            android:layout_marginLeft="25dp"
            android:tag="2"
            android:layout_row="0"
            android:onClick="currentCounter" />

        <ImageView
            android:id="@+id/imageView3"
            android:layout_width="100dp"
            android:layout_height="100dp"
            android:layout_column="0"
            android:layout_marginLeft="10dp"
            android:layout_marginTop="30dp"
            android:tag="3"
            android:layout_row="1"
            android:onClick="currentCounter" />

        <ImageView
            android:id="@+id/imageView4"
            android:layout_width="100dp"
            android:layout_height="100dp"
            android:layout_column="1"
            android:layout_marginLeft="20dp"
            android:layout_marginTop="30dp"
            android:tag="4"
            android:layout_row="1"
            android:onClick="currentCounter" />

        <ImageView
            android:id="@+id/imageView5"
            android:layout_width="100dp"
            android:layout_height="100dp"
            android:layout_column="2"
            android:layout_marginLeft="25dp"
            android:layout_marginTop="30dp"
            android:tag="5"
            android:layout_row="1"
            android:onClick="currentCounter" />

        <ImageView
            android:id="@+id/imageView6"
            android:layout_width="100dp"
            android:layout_height="100dp"
            android:layout_column="0"
            android:layout_marginLeft="10dp"
            android:layout_marginTop="30dp"
            android:tag="6"
            android:layout_row="2"
            android:onClick="currentCounter" />

        <ImageView
            android:id="@+id/imageView7"
            android:layout_width="100dp"
            android:layout_height="100dp"
            android:layout_column="1"
            android:layout_marginLeft="20dp"
            android:layout_marginTop="30dp"
            android:tag="7"
            android:layout_row="2"
            android:onClick="currentCounter" />

        <ImageView
            android:id="@+id/imageView8"
            android:layout_width="100dp"
            android:layout_height="100dp"
            android:layout_column="2"
            android:layout_marginLeft="25dp"
            android:layout_marginTop="30dp"
            android:tag="8"
            android:layout_row="2"
            android:onClick="currentCounter" />
    </GridLayout>

</RelativeLayout>

1 个答案:

答案 0 :(得分:2)

将您的线性布局放在gridLayout下面的相对布局