㈠ android自定義GridView實現可以多行顯示並且能實現左右滑動這個如何做呀,像手機系統的相冊瀏覽圖片一樣
就是畫廊效果,在網路,csdn中搜索一大把源代碼可以下載
http://www.eoeandroid.com/thread-182328-1-1.html 這解釋比較詳細
http://down.51cto.com/data/385451這個可以直接下載源碼,直接導進就可以了
㈡ android scrollview嵌套gridview滑動出現卡頓怎麼解決
其實就是一個預先載入的過程,你不要一口氣都載入,當你畫面靜止的時候,偷偷預先載入5-10個view的數據,之所以慢就是因為臨時載入數據多了。理念類似雙緩沖。
㈢ android ScrollView+GridView GridView不滾動
紅色框框的代碼為何要那樣寫?
另外,gridview內容超出了屏幕就可以滑動,加個ScrollView感覺沒多大必要啊
㈣ android一個界面上有兩個gridview如何滑動一個讓另一個也移動滑動
設置父布局為LinearLayout,然後設置2個gridview的weight都為1.0,然後滑動互不影響。
GridView(網格視圖)是按照行列的方式來顯示內容的,一般用於顯示圖片,圖片等內容,比如實現九宮格圖,用GridView是首選,也是最簡單的.
GirdView的一些屬性:
android:numColumns="auto_fit" --------列數設置為自動
android:columnWidth="90dp",----------每列的寬度,也就是Item的寬度
android:stretchMode="columnWidth"------縮放與列寬大小同步
android:verticalSpacing="10dp"----------垂直邊距
android:horizontalSpacing="10dp"-------水平邊距
㈤ 安卓開發 Fragment中使用GridView 還有點擊事件
import java.util.ArrayList;
import java.util.List;
import org.json.JSONArray;
import org.json.JSONObject;
import android.os.Bundle;
import android.support.v4.app.FragmentTransaction;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.TextView;
import com.android.volley.Request;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.JsonObjectRequest;
import com.evst.wpct.AccountStorage;
import com.evst.wpct.AppController;
import com.evst.wpct.ProjectConst;
import com.evst.wpct.R;
import com.evst.wpct.common.BaseFragment;
import com.evst.wpct.info.TeacherDetailInfoFragment;
import com.evst.wpct.model.CheckModel;
import com.evst.wpct.model.CheckDetailModel;
import com.evst.wpct.util.Utility;
public class CheckMainManageFragment extends BaseFragment implements
OnClickListener {
// UI
private PortraitCheckManageFragment portraitCheckManageFragment;
private ListCheckManageFragment listCheckManageFragment;
// Data
private int mCheckId;
private String mCheckName;
// private List<PupilCheckModel> mPupilChecks;
public static CheckMainManageFragment newInstance(int check_id, String check_name) {
CheckMainManageFragment fragment = new CheckMainManageFragment();
Bundle args = new Bundle();
args.putInt("check_id", check_id);
args.putString("check_name", check_name);
fragment.setArguments(args);
return fragment;
}
@Override
public void onCreate(Bundle savedInstanceState) {
// TODO 自動生成的方法存根
super.onCreate(savedInstanceState);
this.mCheckId = this.getArguments().getInt("check_id");
this.mCheckName = this.getArguments().getString("check_name");
if (AccountStorage.getInstance().mCheckDetails == null) {
AccountStorage.getInstance().mCheckDetails = new ArrayList<CheckDetailModel>();
}
AccountStorage.getInstance().mCheckDetails.clear();
portraitCheckManageFragment = PortraitCheckManageFragment.newInstance();
listCheckManageFragment = ListCheckManageFragment.newInstance();
}
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_manage_main_check, container,
false);
TextView tvTitle = (TextView) view.findViewById(R.id.action_bar_title);
tvTitle.setText(this.mCheckName);
Button btn_PortraitCheck = (Button) view
.findViewById(R.id.btn_PortraitCheck);
btn_PortraitCheck.setOnClickListener(this);
Button btn_ListCheck = (Button) view.findViewById(R.id.btn_ListCheck);
btn_ListCheck.setOnClickListener(this);
this.onClick(btn_ListCheck);
// String url = ProjectConst.MAIN_API_URL + "/check/detail" + "?";
// url += "check_id=" + mCheckId;
//
// Log.i("KKKK", url);
//
// JsonObjectRequest jsObjRequest = new JsonObjectRequest(
// Request.Method.GET, url, null,
// new Response.Listener<JSONObject>() {
//
// @Override
// public void onResponse(JSONObject response) {
// int ret = response.optInt("ret");
//
// if (ret > 0) {
// JSONObject data = response.optJSONObject("data");
// if (data != null) {
// JSONArray array = data.optJSONArray("results");
// if (array != null) {
// for (int i = 0; i < array.length(); i++) {
// JSONObject item = array
// .optJSONObject(i);
// CheckDetailModel m = CheckDetailModel
// .newInstance(item);
// AccountStorage.getInstance().mCheckDetails.add(m);
// }
// }
// }
// listCheckManageFragment.mAdapter.notifyDataSetChanged();
// } else {
// String error = response.optString("error");
// Utility.showToast(getActivity(), error, true);
// }
// }
// }, new Response.ErrorListener() {
//
// @Override
// public void onErrorResponse(VolleyError error) {
// // TODO Auto-generated method stub
// }
// });
// AppController.getInstance().addToRequestQueue(jsObjRequest);
return view;
}
@Override
public void onClick(View view) {
switch (view.getId()) {
case R.id.btn_PortraitCheck: {
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.remove(listCheckManageFragment);
ft.replace(R.id.layout_check_main, PictureModeFragment.newInstance());
ft.commit();
}
break;
case R.id.btn_ListCheck:{
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.remove(portraitCheckManageFragment);
ft.replace(R.id.layout_check_main, listCheckManageFragment);
ft.commit();
}
break;
default:
break;
}
}
}這是Fragment中點擊事件的寫法,注意添加包的聲明啊,而GridView這個東西,你應該能弄懂,無非就是LayoutInflater inflater=LayoutInflater.from(getApplicationContext());
inflater.inflate(resource, root);生成布局文件時,將你的GridView 膨脹出來嗎。實在不行就拖拽
㈥ 實現android系統中ListView和Gridview兩個布局之間點擊跳轉的操作方法有哪些
1. 首先,如下所示,將GridView和ListView布局到同一個頁面中;
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
<TextView
android:id="@+id/app_title"
android:layout_width="fill_parent"
android:layout_height="44dip"
android:text="@string/main_service_title"
android:gravity ="center"
android:textSize="27px"
android:textColor="#ffffff"
android:background ="@drawable/title_bar"/>
<GridView
android:id="@+id/app_grid"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1"
android:padding="10dp"
android:verticalSpacing="10dp"
android:horizontalSpacing="10dp"
android:numColumns="4"
android:columnWidth="60dp"
android:stretchMode="columnWidth"
android:gravity="center"/>
<ListView
android:id="@+id/app_list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1"
android:divider="@drawable/divider"/>
</LinearLayout>
㈦ android gridview的監聽事件不起作用啊
gridView事件處理不了,那說明代碼寫的有問題了。
1.關於Android事件構成
在Android中,事件主要包括點按、長按、拖拽、滑動等,點按又包括單擊和雙擊,另外還包括單指操作和多指操作。所有這些都構成了Android中的事件響應。總的來說,所有的事件都由如下三個部分作為基礎:
1.按下(ACTION_DOWN)
2.移動(ACTION_MOVE)
3.抬起(ACTION_UP)
所有的操作事件首先必須執行的是按下操作(ACTIONDOWN),之後所有的操作都是以按下操作作為前提,當按下操作完成後,接下來可能是一段移動(ACTIONMOVE)然後抬起(ACTION_UP),或者是按下操作執行完成後沒有移動就直接抬起。這一系列的動作在Android中都可以進行控制。
2.事件的處理API
在View和ViewGroup中都存在dispatchTouchEvent和onTouchEvent方法,但是在ViewGroup中還有一個onInterceptTouchEvent方法,在Android中,所有的事件都是從開始經過傳遞到完成事件的消費,這些方法的返回值就決定了某一事件是否是繼續往下傳,還是被攔截了,或是被消費了。
public boolean dispatchTouchEvent(MotionEvent event)
public boolean onTouchEvent(MotionEvent event)
public boolean onInterceptTouchEvent(MotionEvent event)
3.事件處理API的說明
dispatchTouchEvent方法用於事件的分發,Android中所有的事件都必須經過這個方法的分發,然後決定是自身消費當前事件還是繼續往下分發給子控制項處理。返回true表示不繼續分發,事件沒有被消費。返回false則繼續往下分發,如果是ViewGroup則分發給onInterceptTouchEvent進行判斷是否攔截該事件。
onTouchEvent方法用於事件的處理,返回true表示消費處理當前事件,返回false則不處理,交給子控制項進行繼續分發。
onInterceptTouchEvent是ViewGroup中才有的方法,View中沒有,它的作用是負責事件的攔截,返回true的時候表示攔截當前事件,不繼續往下分發,交給自身的onTouchEvent進行處理。返回false則不攔截,繼續往下傳。
㈧ 求教高手,android下如何讓GridView能夠水平滾動,行數固定是三行
gridview外面套一個horizontalscrollview
㈨ 如何實現android中橫向滾動的gridView
法1.直接用tablelayout gridview是根據你每行的單元數自動生成的行數;
法2.可以在代碼里根據view數來動態設置列數,比如有10記錄可以設置列數為10/3+1,這樣就有三行四列了。
如果您對我的回答有不滿意的地方,還請您繼續追問;
答題不易,互相理解,互相幫助!