我知道这个问题已有几个问题,因为我已经搜索了一个小时,但这些问题都没有解决我的问题,也解决方案太旧了。
我正在制作一个活动应用程序,它显示了人们参加活动的情况。它需要有两个GridView:YES和NO,具体取决于出勤情况,并显示客人的照片。
我已经制作了“YES”GridView,我尝试在我的布局中添加一个新的TextView和GridView +在Java中为我的“NO”GridView 获取它的布局,但它只显示第一个。< / strong>
我做错了什么?我正在为每个标签使用Fragments。
这就是我的v.s.我想要的是什么:
这是我片段的布局:
[fragment_one.xml]
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="com.example.example.MainActivity.OneFragment">
<TextView android:id="@+id/title_yes"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="14dp"
android:text="Yes"
android:textAllCaps="true"
android:textSize="14sp"
android:fontFamily="sans-serif-regular" />
<GridView android:id="@+id/gridview_yes"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@+id/title_yes"
android:numColumns="4"
android:verticalSpacing="2dp"
android:horizontalSpacing="2dp"
android:stretchMode="columnWidth"
android:gravity="center" />
<TextView android:id="@+id/title_no"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="14dp"
android:text="No"
android:textAllCaps="true"
android:textSize="14sp"
android:fontFamily="sans-serif-regular" />
<GridView android:id="@+id/gridview_no"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@+id/title_no"
android:numColumns="4"
android:verticalSpacing="2dp"
android:horizontalSpacing="2dp"
android:stretchMode="columnWidth"
android:gravity="center" />
</LinearLayout>
这是我的片段的Java:
public class OneFragment extends Fragment {
public OneFragment() {
// Required empty public constructor
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view = inflater.inflate(R.layout.fragment_one, container, false);
GridView gridViewYes = (GridView) view.findViewById(R.id.gridview_yes);
GridView gridViewNo = (GridView) view.findViewById(R.id.gridview_no);
gridViewYes.setAdapter(new ImageAdapter(view.getContext())); // uses the view to get the context instead of getActivity()
gridViewNo.setAdapter(new ImageAdapter(view.getContext())); // uses the view to get the context instead of getActivity()
gridViewYes.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
Toast.makeText(getActivity(), "Esta es la imagen " + position + ".", Toast.LENGTH_SHORT).show();
}
});
return view;
}
}
答案 0 :(得分:1)
GridView可能不是您的最佳选择。当您在滚动容器中显示可能很长的事物列表时,将使用该窗口小部件。如果有一组可管理的项目不需要自己的滚动行为,TableView会更好。
另外,你可能不希望这些东西的match_height为match_hearent。使用wrap_content只允许它们与内容建议一样高。
如果由于不确定整个高度而需要滚动整个内容,请将LinearLayout放在ScrollView中,然后让它确定表格和文本的集合是否应该是可滚动的,如果它们太高而不能分配的空间。
答案 1 :(得分:1)
你的问题是你已经将GridView设置为match_parent。
android:layout_height="match_parent"
您应该更改如下:
android:layout_height="wrap_content"