How to fix this margin gap?

雨燕双飞 提交于 2021-02-11 12:51:07

问题


I am creating an Faq page using TextViews, So the textviews become visible and hide automatically when clicked, but this was overlapping the upcoming question so I researched and found marginlayoutparams solution but this code won't reset back when clicked again.

Initial state:

After I click Fare Charges:

After I click on it again:

The code:

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

public class faq extends AppCompatActivity {
TextView mfaq,mAns,mfaq2,mAns2;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_faq);

    mfaq=findViewById(R.id.faq1);
    mAns=findViewById(R.id.ans);
    mfaq2=findViewById(R.id.faq2);
    mAns2=findViewById(R.id.ans2);


    mfaq.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            if(mAns.getVisibility()== View.VISIBLE){
                ViewGroup.MarginLayoutParams marginParams = (ViewGroup.MarginLayoutParams) mfaq2.getLayoutParams();
                marginParams.setMargins(marginParams.leftMargin,
                        -400, //setting it back to 0  this part isnt working
                        marginParams.rightMargin,
                        marginParams.bottomMargin);

                mAns.setVisibility(View.GONE);
            }
            else
                mAns.setVisibility(View.VISIBLE);
            ViewGroup.MarginLayoutParams marginParams = (ViewGroup.MarginLayoutParams) mfaq2.getLayoutParams();
            marginParams.setMargins(marginParams.leftMargin,
                    400, //only changing top margin
                    marginParams.rightMargin,
                    marginParams.bottomMargin);
        }
    });
    mfaq2.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            if(mAns2.getVisibility()== View.VISIBLE){
                mAns2.setVisibility(View.GONE);
            }
            else
                mAns2.setVisibility(View.VISIBLE);
        }
    });
}
}

I don't know how to set it back to initial state like first image. Please help. Note- I am a beginner so please explain me so I can learn and understand.


回答1:


Can you print the xml ? try with "wrap_content" in parent layout




回答2:


You can use Cardview to encapsulate your Faq element :

https://developer.android.com/guide/topics/ui/layout/cardview

Then change the visibility of the component that you want to hide as gone and set a listner to change the visibility if the textView (or your cardView ) is clicked

Textview label = (TextView ) myPosts.findViewById(R.id.cancel);
    cancelButton.setOnClickListener(view->{
        if(newPostCard.getVisibility() == View.VISIBLE){
            TransitionManager.beginDelayedTransition(cardView,
                    new AutoTransition());
            newPostCard.setVisibility(View.GONE);
            newPostButton.setVisibility(View.VISIBLE);


        }
        else{
            TransitionManager.beginDelayedTransition(cardView,
                    new AutoTransition());
            newPostCard.setVisibility(View.VISIBLE);
            newPostButton.setVisibility(View.GONE);


        }
    });



回答3:


The way I got around to this problem was to add a linear layout to the questions and answer fields. here is the xml code:

<?xml version="1.0" encoding="utf-8"?>
<ScrollView 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:background="@android:color/holo_orange_dark"
    tools:context=".faq">


    <androidx.constraintlayout.widget.ConstraintLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:paddingBottom="300dp"
        tools:context=".faq">

        <TextView
            android:id="@+id/textView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="20dp"
            android:text="@string/Welcome"
            android:textColor="#000000"
            android:textColorHighlight="#000000"
            android:textColorHint="#000000"
            android:textSize="36sp"
            app:fontFamily="@font/racing_sans_one"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent" />

        <TextView
            android:id="@+id/frequentlyaskedquestions"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="12dp"
            android:text="@string/faqs"
            android:textColor="#FFFFFF"
            android:textColorHighlight="#FFFFFF"
            android:textColorHint="#FFFFFF"
            android:textColorLink="#FFFFFF"
            android:textSize="18sp"
            app:fontFamily="@font/racing_sans_one"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/textView" />

        <TextView
            android:id="@+id/clickonthem"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="16dp"
            android:text="@string/clickonthem"
            android:textColor="#FFFFFF"
            android:textColorHighlight="#FFFFFF"
            android:textColorHint="#FFFFFF"
            android:textColorLink="#FFFFFF"
            android:textSize="18sp"
            app:fontFamily="@font/racing_sans_one"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintHorizontal_bias="0.498"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/frequentlyaskedquestions" />

        <LinearLayout
            android:layout_width="409dp"
            android:layout_height="294dp"
            android:layout_marginTop="28dp"
            android:orientation="vertical"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/clickonthem">

            <TextView
                android:id="@+id/faq1"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginLeft="20dp"
                android:layout_marginRight="20dp"
                android:clickable="true"
                android:focusable="true"
                android:text="@string/q1"
                android:textColor="#000000"
                android:textColorHighlight="#000000"
                android:textColorHint="#000000"
                android:textSize="18sp"
                android:textStyle="bold|italic" />

            <TextView
                android:id="@+id/ans"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginLeft="20dp"
                android:layout_marginTop="5dp"
                android:layout_marginRight="20dp"
                android:text="@string/a1"
                android:textColor="#000000"
                android:textColorHighlight="#000000"
                android:textColorHint="#000000"
                android:textColorLink="#000000"
                android:textSize="18sp"
                android:textStyle="bold|italic"
                android:visibility="gone" />

            <TextView
                android:id="@+id/faq2"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginLeft="20dp"
                android:layout_marginTop="20dp"
                android:layout_marginRight="20dp"
                android:clickable="true"
                android:focusable="true"
                android:text="@string/q2"
                android:textColor="#000000"
                android:textColorHighlight="#000000"
                android:textColorHint="#000000"
                android:textSize="18sp"
                android:textStyle="bold|italic" />

            <TextView
                android:id="@+id/ans2"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginLeft="20dp"
                android:layout_marginTop="5dp"
                android:layout_marginRight="20dp"
                android:text="@string/a2"
                android:textColor="#000000"
                android:textColorHighlight="#000000"
                android:textColorHint="#000000"
                android:textColorLink="#000000"
                android:textSize="18sp"
                android:textStyle="bold|italic"
                android:visibility="gone" />
        </LinearLayout>

    </androidx.constraintlayout.widget.ConstraintLayout>
</ScrollView>


来源:https://stackoverflow.com/questions/66045709/how-to-fix-this-margin-gap

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!