片段从一开始就没有显示 |安卓工作室
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
在开始时自动滚动到它.但这仍然应该是带有项目的列表(因为它们几乎完全相同),而不是使用具有多个子项的一个布局滚动,直到它需要滚动
【讨论】:
以上是关于片段从一开始就没有显示 |安卓工作室的主要内容,如果未能解决你的问题,请参考以下文章