片段从一开始就没有显示 |安卓工作室

Posted

技术标签:

【中文标题】片段从一开始就没有显示 |安卓工作室【英文标题】:Fragment is not showing from the beginning | Android studio 【发布时间】:2021-08-12 18:38:40 【问题描述】:

当我来到这个片段时,它并没有从一开始就显示出来。它是从其他地方显示出来的......

我希望它应该从头开始显示.. 喜欢数字..

1,2,3..9

上图我是从某个网站下载的,只是为了方便解释我的问题(此图与下面的代码无关)

下面是我的片段代码

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_
    android:layout_

    xmlns:app="http://schemas.android.com/apk/res-auto"
    tools:context=".ProgramOutcomesFragment">

    <!-- TODO: Update blank fragment layout -->
    <LinearLayout
        android:layout_
        android:orientation="vertical"
        android:layout_>
        <TextView
            android:layout_
            android:text="ABOUT DEPARTMENT"
            android:layout_marginTop="10dp"
            style="@style/welcom_text"
            android:gravity="center"
            android:layout_/>




        <LinearLayout
            android:layout_margin="10dp"
            android:orientation="vertical"
            android:layout_
            android:layout_>

            <androidx.cardview.widget.CardView
                android:layout_
                app:cardBackgroundColor="@color/college_color_dark"
                android:layout_>
                <TextView
                    android:layout_
                    style="@style/GreenText"
                    android:textSize="15dp"
                    android:layout_gravity="center"
                    android:text="VISION"
                    android:layout_>

                </TextView>
            </androidx.cardview.widget.CardView>
            <TextView
                android:layout_marginTop="5dp"
                android:layout_

                android:id="@+id/deptvision"
                android:justificationMode="inter_word"
                android:layout_>

            </TextView>

        </LinearLayout>

        <LinearLayout
            android:layout_margin="10dp"
            android:orientation="vertical"
            android:layout_
            android:layout_>

            <androidx.cardview.widget.CardView
                android:layout_
                app:cardBackgroundColor="@color/college_color_dark"
                android:layout_>
                <TextView
                    android:layout_
                    style="@style/GreenText"
                    android:textSize="15dp"
                    android:layout_gravity="center"
                    android:text="MISSION"
                    android:layout_>

                </TextView>
            </androidx.cardview.widget.CardView>
            <TextView
                android:layout_marginTop="5dp"
                android:layout_

                android:id="@+id/deptmission"
                android:justificationMode="inter_word"
                android:layout_>

            </TextView>

        </LinearLayout>





        <LinearLayout
            android:layout_margin="10dp"
            android:orientation="vertical"
            android:layout_
            android:layout_>

            <androidx.cardview.widget.CardView
                android:layout_
                app:cardBackgroundColor="@color/college_color_dark"
                android:layout_>
                <TextView
                    android:layout_
                    style="@style/GreenText"
                    android:textSize="15dp"
                    android:layout_gravity="center"
                    android:text="DEPARTMENT PROFILE"
                    android:layout_>

                </TextView>
            </androidx.cardview.widget.CardView>
            <TextView
                android:layout_marginTop="5dp"
                android:layout_

                android:id="@+id/deptprofile"
                android:justificationMode="inter_word"
                android:layout_>

            </TextView>

        </LinearLayout>



        <LinearLayout
            android:layout_margin="10dp"

            android:orientation="vertical"
            android:layout_
            android:layout_>

            <androidx.cardview.widget.CardView
                android:layout_
                app:cardBackgroundColor="@color/college_color_dark"
                android:layout_>
                <TextView
                    android:layout_
                    style="@style/GreenText"
                    android:textSize="15dp"
                    android:text="PRORAMME EDUCATIONAL OBJECTIVES(PEO)"
                    android:layout_gravity="center"
                    android:layout_>

                </TextView>
            </androidx.cardview.widget.CardView>
            <TextView
                android:layout_marginTop="5dp"
                android:layout_

                android:id="@+id/deptpeo"
                android:layout_>

            </TextView>

        </LinearLayout>






        <LinearLayout
            android:layout_margin="10dp"

            android:orientation="vertical"
            android:layout_
            android:layout_>

            <androidx.cardview.widget.CardView
                android:layout_
                app:cardBackgroundColor="@color/college_color_dark"
                android:layout_>
                <TextView
                    android:layout_
                    style="@style/GreenText"
                    android:textSize="15dp"
                    android:layout_gravity="center"
                    android:text="PROGRAMME OUTCOMES(PO)"
                    android:layout_>

                </TextView>
            </androidx.cardview.widget.CardView>
            <TextView
                android:layout_marginTop="5dp"
                android:layout_

                android:id="@+id/deptpo"
                android:layout_>

            </TextView>

        </LinearLayout>



        <LinearLayout
            android:layout_margin="10dp"
            android:orientation="vertical"
            android:layout_
            android:layout_>

            <androidx.cardview.widget.CardView
                android:layout_
                app:cardBackgroundColor="@color/college_color_dark"
                android:layout_>
                <TextView
                    android:layout_
                    style="@style/GreenText"
                    android:textSize="15dp"
                    android:text="PROGRAMME SPECIFIC OUTCOMES (PSO"
                    android:layout_gravity="center"
                    android:layout_>

                </TextView>
            </androidx.cardview.widget.CardView>
            <TextView
                android:layout_marginTop="5dp"
                android:layout_
                android:id="@+id/deptpso"
                android:justificationMode="inter_word"
                android:layout_>

            </TextView>

        </LinearLayout>

    </LinearLayout>
</ScrollView>

Java 代码



import android.content.Context;
import android.content.SharedPreferences;
import android.os.Bundle;

import androidx.fragment.app.Fragment;

import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;


/**
 * A simple @link Fragment subclass.
 */
public class ProgramOutcomesFragment extends Fragment 

    TextView deptvison,deptmission,deptprofile,deptpeo,deptpo,deptpso;

    public ProgramOutcomesFragment() 
        // Required empty public constructor
    


    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) 
        // Inflate the layout for this fragment
        View view =  inflater.inflate(R.layout.fragment_program_outcomes, container, false);

        deptvison = view.findViewById(R.id.deptvision);
        deptmission = view.findViewById(R.id.deptmission);
        deptprofile = view.findViewById(R.id.deptprofile);
        deptpeo = view.findViewById(R.id.deptpeo);
        deptpso = view.findViewById(R.id.deptpso);
        deptpo = view.findViewById(R.id.deptpo);

        String branch = SharedPrefManager.getInstance(this.getContext()).getBranch();

        switch(branch)

            case "cse":
                deptvison.setText(this.getString(R.string.csevision));
                deptmission.setText(this.getString(R.string.csemission));
                deptprofile.setText(this.getString(R.string.cseprofile));
                deptpso.setText(this.getString(R.string.csepso));
                deptpo.setText(this.getString(R.string.csepo));
                deptpeo.setText(this.getString(R.string.csepeo));
            break;

            case "ise":
                deptvison.setText(this.getString(R.string.isevision));
                deptmission.setText(this.getString(R.string.isemission));
                deptprofile.setText(this.getString(R.string.iseprofile));
                deptpso.setText(this.getString(R.string.isepso));
                deptpo.setText(this.getString(R.string.csepo));
                deptpeo.setText(this.getString(R.string.isepeo));
                break;

            case "ece":
                deptvison.setText(this.getString(R.string.ecvision));
                deptmission.setText(this.getString(R.string.ecmission));
                deptprofile.setText(this.getString(R.string.ecprofile));
                deptpso.setText(this.getString(R.string.ecpso));
                deptpo.setText(this.getString(R.string.csepo));
                deptpeo.setText(this.getString(R.string.ecpeo));
                break;
            case "me":
                deptvison.setText(this.getString(R.string.mevision));
                deptmission.setText(this.getString(R.string.memission));
                deptprofile.setText(this.getString(R.string.meprofile));
                deptpso.setText(this.getString(R.string.mepso));
                deptpo.setText(this.getString(R.string.csepo));
                deptpeo.setText(this.getString(R.string.mepeo));
                break;

            case "ee":
                deptvison.setText(this.getString(R.string.eevision));
                deptmission.setText(this.getString(R.string.eemission));
                deptprofile.setText(this.getString(R.string.eeprofile));
                deptpso.setText(this.getString(R.string.eepso));
                deptpo.setText(this.getString(R.string.csepo));
                deptpeo.setText(this.getString(R.string.eepeo));
                break;

            default:
                deptvison.setText(this.getString(R.string.csevision));
                deptmission.setText(this.getString(R.string.csemission));
                deptprofile.setText(this.getString(R.string.cseprofile));
                deptpso.setText(this.getString(R.string.csepso));
                deptpo.setText(this.getString(R.string.csepo));
                deptpeo.setText(this.getString(R.string.csepeo));
        



        return view;
    


【问题讨论】:

始终显示您的代码!这是ListView 还是RecyclerView?我敢打赌这是通过最后一个/所有列表项请求焦点,将整个布局滚动到底部的问题 @snachmsm 我更新了问题 【参考方案1】:

看来你没用过ScrollView。 在 FrameLayout 中使用 ScrollView 然后是 ScrollView 中的 RelativeLayout/LinearLayout/ConstraintLayout。

希望我正确理解了您的问题。 谢谢 希望有效

【讨论】:

XML 中所有视图的根/第一个实际上是 ScrollView...【参考方案2】:

您当前的方法非常糟糕,您应该切换到 RecyclerView 和一些适配器实现 - HERE 中的一些文档和 Internet 中的许多教程。如果您真的想防止不良行为(自动滚动到底部),那么您可以尝试 THIS 解决方案 - 看起来您的一个视图(可能全部)正在请求焦点,这使得 ScrollView 在开始时自动滚动到它.但这仍然应该是带有项目的列表(因为它们几乎完全相同),而不是使用具有多个子项的一个布局滚动,直到它需要滚动

【讨论】:

以上是关于片段从一开始就没有显示 |安卓工作室的主要内容,如果未能解决你的问题,请参考以下文章

片段没有被 RecyclerView 膨胀

Mediaplayer在切换片段时没有暂停

软件工程学期总结

滚动选项卡中的片段时隐藏/显示工具栏

编程中,有哪些好的习惯从一开始就值得坚持?

编程中,有哪些好的习惯从一开始就值得坚持?