当前位置:网站首页>How to solve the component conflicts caused by scrollbars in GridView
How to solve the component conflicts caused by scrollbars in GridView
2022-07-04 05:45:00 【Bad make】
When you mix layouts or components, you may find gridview The Jiugong grid of is not completely displayed on the page , It just shows a part ( first line ) There is only one scroll bar , Can't drag up and down yet , It's really annoying , Like the screenshot below , So how to solve it ?
First of all, this is component conflict , not only gridview, listview The same solution has emerged . The solution is as follows
My is gridview There is an error , Then I just need to rewrite gridview That's it .
import android.content.Context;
import android.util.AttributeSet;
import android.widget.GridView;
public class MyGridView extends GridView {
public MyGridView(Context context) {
super(context);
}
public MyGridView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public MyGridView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
// todo Component conflicts No scrollbars
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST);
super.onMeasure(widthMeasureSpec, expandSpec);
}
}
Okay , Now run the program again , Problem solving .【listview Just rewrite listview Just go 】
GridView View mode is ListView One of the view modes of the control . adopt GridView Class and its supporting classes , You and your users can view the set of items in tabular form , This table usually uses buttons as interactive column headings . This topic introduces GridView Class and outline its use .GridView View mode displays a list of data items by binding data fields to columns and displaying column headings that identify fields . default GridView The style implements buttons as column headings . By using buttons for column headings , It can realize important user interaction functions ; for example , The user can click the column header to sort GridView Sort the data .
Gridview Grid view basically uses ( Small example ), Introduction and rookie tutorial
1. Related properties :
Here is GridView Some properties in :
android:columnWidth: Set the width of the column
android:gravity: Component to its way
android:horizontalSpacing: The spacing of each cell in the horizontal direction
android:verticalSpacing: The spacing of each cell in the vertical direction
android:numColumns: Set number of columns
android:stretchMode: Set stretch mode , The optional values are as follows : none: No stretching ;spacingWidth: Stretch the space between elements columnWidth: Just stretch the table element itself spacingWidthUniform: Both pull the element spacing and stretch the spacing between them
2. Examples of use :
Here is a simple example to get familiar with the use of this control : ( Used here Adapter We use it directly 2.5.0 Chinese teaching everyone to write reusable BaseAdapter~)
Code implementation :
First of all GridView Of Item Layout :item_grid_icon.xml:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:padding="5dp">
<ImageView android:id="@+id/img_icon" android:layout_width="64dp" android:layout_height="64dp" android:layout_centerInParent="true" android:src="@mipmap/iv_icon_1" />
<TextView android:id="@+id/txt_icon" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@id/img_icon" android:layout_centerHorizontal="true" android:layout_marginTop="30dp" android:text=" ha-ha " android:textSize="18sp" />
</RelativeLayout>
entity Entity class :Icon.java:
public class Icon {
private int iId;
private String iName;
public Icon() {
}
public Icon(int iId, String iName) {
this.iId = iId;
this.iName = iName;
}
public int getiId() {
return iId;
}
public String getiName() {
return iName;
}
public void setiId(int iId) {
this.iId = iId;
}
public void setiName(String iName) {
this.iName = iName;
}
}
And finally MainActivity Layout and Java Code
activity_main.xml:
<RelativeLayout 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:padding="5dp" tools:context=".MainActivity">
<!--numColumns Set how many are displayed in each line -->
<GridView android:id="@+id/grid_photo" android:layout_width="match_parent" android:layout_height="match_parent" android:numColumns="3" />
</RelativeLayout>
MainActivity.java:
public class MainActivity extends AppCompatActivity {
private Context mContext;
private GridView grid_photo;
private BaseAdapter mAdapter = null;
private ArrayList<Icon> mData = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mContext = MainActivity.this;
grid_photo = (GridView) findViewById(R.id.grid_photo);
mData = new ArrayList<Icon>();
mData.add(new Icon(R.mipmap.iv_icon_1, " Icon 1"));
mData.add(new Icon(R.mipmap.iv_icon_2, " Icon 2"));
mData.add(new Icon(R.mipmap.iv_icon_3, " Icon 3"));
mData.add(new Icon(R.mipmap.iv_icon_4, " Icon 4"));
mData.add(new Icon(R.mipmap.iv_icon_5, " Icon 5"));
mData.add(new Icon(R.mipmap.iv_icon_6, " Icon 6"));
mData.add(new Icon(R.mipmap.iv_icon_7, " Icon 7"));
mAdapter = new MyAdapter<Icon>(mData, R.layout.item_grid_icon) {
@Override
public void bindView(ViewHolder holder, Icon obj) {
holder.setImageResource(R.id.img_icon, obj.getiId());
holder.setText(R.id.txt_icon, obj.getiName());
}
};
grid_photo.setAdapter(mAdapter);
grid_photo.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Toast.makeText(mContext, " You click on the ~" + position + "~ term ", Toast.LENGTH_SHORT).show();
}
});
}
}
边栏推荐
- win10清除快速访问-不留下痕迹
- Design and implementation of tcp/ip series overview
- Character types of C language
- Accidentally deleted the data file of Clickhouse, can it be restored?
- js如何将秒转换成时分秒显示
- Leetcode 184 Employees with the highest wages in the Department (July 3, 2022)
- ansys命令
- 如何获取el-tree中所有节点的父节点
- How to clone objects
- VB.net 调用FFmpeg简单处理视频(类库——6)
猜你喜欢
Halcon图片标定,使得后续图片处理过后变成与模板图片一样
Appearance of LabVIEW error dialog box
谷歌 Chrome 浏览器将支持选取文字翻译功能
Programmers don't talk about morality, and use multithreading for Heisi's girlfriend
js如何将秒转换成时分秒显示
LM small programmable controller software (based on CoDeSys) note XXI: error 3703
509. Fibonacci number, all paths of climbing stairs, minimum cost of climbing stairs
Letter meaning and parameter abbreviation of optical module Daquan
Build an Internet of things infrared temperature measuring punch in machine with esp32 / rush to work after the Spring Festival? Baa, no matter how hard you work, you must take your temperature first
ansys命令
随机推荐
[wechat applet] template and configuration (wxml, wxss, global and page configuration, network data request)
The end of the Internet is rural revitalization
检漏继电器JY82-2P
How to use postman to realize simple interface Association [add, delete, modify and query]
Accidentally deleted the data file of Clickhouse, can it be restored?
C语言简易学生管理系统(含源码)
Principle and practice of common defects in RSA encryption application
Void convolution, deformable convolution, deformable ROI pooling
Talk about the SQL server version of DTM sub transaction barrier function
VB.net 调用FFmpeg简单处理视频(类库——6)
空洞卷积、可变形卷积、可变形ROI Pooling
ANSYS command
2022 a special equipment related management (elevator) examination questions simulation examination platform operation
Nodejs learning document
The difference between PX EM rem
拓扑排序和关键路径的图形化显示
What are the reasons for the frequent high CPU of ECS?
JS arguments parameter usage and explanation
谷歌 Chrome 浏览器将支持选取文字翻译功能
Programmers don't talk about morality, and use multithreading for Heisi's girlfriend