简体   繁体   中英

Fragment switching when clicked on a texview Android

I am trying to change the display on my android screen when you click on a textview . This textview is inside a tab which is inside a tabhost . I created a fragment which would overlay on top of this tab when you click on it but having issues doing.

In my main activity I got this code;

tabHost.getTabContentView().findViewById(R.id.currentMoney).setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {  
            switch(v.getId()){
                case R.id.currentMoney:
                    android.app.FragmentTransaction transaction = getFragmentManager().beginTransaction(); 
                    transaction.replace(R.id.tab2, new OverviewFragment());   
                    transaction.commit();
            }
        }
    });

This is the code that I have in my overview java class

public class OverviewFragment extends Fragment {


    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        return inflater.inflate(R.layout.home_tab_transactionhistory, container, false);
    }

}

What happens is when I run this home_tab_transactionhistory xml file comes up right underneath what ever I had before. Doesn't even show fully what ever I have got in the home_tab_transactionhistory xml file.

Below I have listed the xml code of the page that should take you to another page when you click on a text view;

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:custom="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity"
android:background="#369742"
android:gravity="start|end"
android:longClickable="true">

<TabHost
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:id="@+id/tabHost"
    android:layout_alignParentTop="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:clickable="false">

<TabWidget
            android:id="@android:id/tabs"
            android:layout_width="270dp"
            android:layout_height="wrap_content"
            android:background="#5DAD68"
            android:clickable="false"
            android:measureWithLargestChild="true"
            android:orientation="horizontal"
            android:layout_weight="1.04"
            android:longClickable="false"
            android:paddingTop="10dp"
            android:paddingLeft="30dp"
            android:layout_marginLeft="40dp"
            android:layout_marginRight="40dp"></TabWidget>


<FrameLayout
            android:id="@android:id/tabcontent"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:clickable="false">

            <LinearLayout
                android:id="@+id/tab2"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:orientation="vertical"
                android:clickable="false"
                android:background="#FFFFFF"
                android:weightSum="1">

<TextView
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:textAppearance="?android:attr/textAppearanceLarge"
                            android:text="@string/currentMoney"
                            android:fontFamily="sans-serif-light"
                            android:onClick="showCurrentAccountMoney"
                            android:id="@+id/currentMoney"
                            android:paddingTop="5dp"
                            android:layout_gravity="center_horizontal"
                            android:textColor="#ff000000"
                            android:textSize="40dp" />

id of the textview is currentMoney

Please can someone help me fix this issue.

You should post the xml layout file where there is your clickable text view. To make the new Fragment overlay, you should add it to a FrameLayout which places its childs on top of each other.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM