當前位置:首頁 » 安卓系統 » android橫向滾動

android橫向滾動

發布時間: 2023-04-30 15:03:04

1. 如何實現android中橫向滾動的gridView

法1.直接用tablelayout gridview是根據你每行的單元數自動生成的行數;
法2.可以在代碼里根據view數來動態設置列數,比如有10記錄可以設置列數為10/3+1,這樣就有三行四列了。
如果您對我的回答有不滿意的地方,還請您繼續追問;
答題不易,互相理解,互相幫助!

2. RecyclerView

RecyclerView 是Android一個更強大的控制項,其不僅可以實現和ListView同樣的效果,還有優化了ListView中的各種尺明不足。其可以實現數據縱向滾動,也可以實現橫向滾動(ListView做不到橫向滾動)。陵脊告接下來講解RecyclerView的用法。

因為 RecyclerView 屬於新增的控制項,Android將RecyclerView定義在support庫里。若要使用RecyclerView,第一步是要在 build.gradle 中添加對應的依賴庫。

在 app/build.gradle 中的 dependencies閉包 添加以下內容:

然後點擊頂部的Sync Now進行同步

由於 RecyclerView 不是內置在系統SDK中,需要把其野仔完整的包名路徑寫出來

創建ImageView來顯示水果圖片,TextView來顯示水果名字。

為 RecyclerView 新增適配器 FruitAdapter ,並讓其繼承於 RecyclerView.Adapter ,把泛型指定為 FruitAdapter.ViewHolder 。

LayoutManager 用於指定RecyclerView的布局方式。 LinearLayoutManager 指的是線性布局。

運行效果:

把LinearLayout改成垂直排列,因為水果名字長度不一樣,把寬度改為100dp。
ImageView和TextView都改為水平居中

通過調用 setOrientation() 把布局的排列方向改為水平排列。

得益於RecyclerView的設計,我們可以通過LayoutManager實現各種不同的排列方式的布局。

運行結果:

除了 LinearLayoutManager , RecyclerView 還提供了 GridLayoutManager(網格布局) 和 StaggeredGridLayoutManager(瀑布流布局)

GridLayoutManager(網格布局)

修改 MainActivity.java ,把

換成

GridLayoutManager (Context context, int spanCount)

運行結果:

StaggeredGridLayoutManager(瀑布流布局)

把LinearLayout的寬度設為 match_parent 是因為瀑布流的寬度是 根據布局的列數來自動適配的,而不是固定值 。(GridLayoutManager也是 根據布局的列數來自動適配的

StaggeredGridLayoutManager layoutManager = new StaggeredGridLayoutManager(3,StaggeredGridLayoutManager.VERTICAL);
StaggeredGridLayoutManager傳入2個參數,第一個是布局的列數,第二個是布局的排列方向。

random.nextInt(20)+1 產生1-20的隨機數
運行效果:

上圖是GridLayoutManager,下圖是StaggeredGridLayout。
當從顯示效果來看,已經一目瞭然。
GridLayoutManager是會固定高度的,所以會留下很多空白區域。
相反,StaggeredGridLayout並不會固定高度,以至於就運算元項的高度不一致,下一行的會自動靠攏上一行。

修改ViewHolder,添加fruitView變數來保存子項最外層布局的實例。

運行效果:

3. android scrollview的水平滾動條問題,哪位高手給指教下啊,謝謝了!!

如果你把內容包含在ScrollView中,當內容族稿超出高度時會自動出現滾動條。

另外,使用控制項HorizontalScrollView 來包住你的內容時,兆寬孝
如果你的內容假設是一個LinearLayout, 那麼當LinearLayout的寬度超過屏幕時, 將會自動產生滾動條,當你拖動滑鼠時,效果跟scrollView一樣,不過是橫向而己

例:
縱向滾動
<ScrollView>
<LinearLayout ........>
<TextView ...../>
<TextView ...../>
<TextView ...../>
<TextView ...../>
</LineraLayout>
</ScrollView>

模向滾動
<HorizontalScrollView >
<LinearLayout ........>
<TextView ...../>
<TextView ...../>
<TextView ...../>
<TextView ...../巧寬>
</LineraLayout>
</HorizontalScrollView >

有時候甚至可以做到橫向縱向都支持,只需要你合理設計就可以, 注意ScrollView中只能加一個控制,不能超過兩個

4. android 手勢判斷是橫向滑動還是縱向 csdn

對於Android中的手勢識別可以從以下三個Listener入手——OnTouchListener、OnGestureListener、OnDoubleTapListener。這三個監聽器分別是觸摸監聽、手勢滑動監聽和屏幕雙擊操作監聽。很多的時候我們需要這些手勢識別的操作,例如我們自定義控制項的時候就經常會用到。下面就對這三個監聽器分別進行介紹。

觸摸監聽器OnTouchListener
讓我們的Activity去現實此介面,並重寫onTouch方法。重寫OnTouchListener的onTouch方法 此方法在觸摸屏被觸摸,即發生觸摸事件(接觸和撫摸兩個事件)的時候被調用。示範代碼如下:

@Override
public boolean onTouch(View v, MotionEvent event) {
detector.onTouchEvent(event);
Toast.makeText(this, "onTouch", TIME_OUT).show();
return true;
}

手勢滑動監聽器OnGestureListener
讓我們的Activity去現實此介面,並重寫onFling、onLongPress、onScroll、onDown、onShowPress、onSingleTapUp方法。示範代碼如下:

/**
* 手勢滑動時別調用
*/
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
float velocityY) {

if (e1.getX() - e2.getX() > FLING_MIN_DISTANCE) {
Toast.makeText(this, "向左滑動", TIME_OUT).show();
} else if (e2.getX() - e1.getX() > FLING_MIN_DISTANCE) {
Toast.makeText(this, "向右滑動", TIME_OUT).show();
}
return false;
}

/**
* 長按時被調用
*/
@Override
public void onLongPress(MotionEvent e) {
Toast.makeText(this, "觸發長按回調", TIME_OUT).show();
}

/**
* 滾動時調用
*/
@Override
public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX,
float distanceY) {
Toast.makeText(this, "觸發滾動回調", TIME_OUT).show();
return false;
}

/**
* 在按下動作時被調用
*/
@Override
public boolean onDown(MotionEvent e) {
Toast.makeText(this, "按下回調", TIME_OUT).show();
return false;
}

/**
* 按住時被調用
*/
@Override
public void onShowPress(MotionEvent e) {
Toast.makeText(this, "按住不松回調", TIME_OUT).show();
}

/**
* 抬起時被調用
*/
@Override
public boolean onSingleTapUp(MotionEvent e) {
Toast.makeText(this, "觸發抬起回調", TIME_OUT).show();
return false;
}

雙擊屏幕監聽器OnDoubleTapListener
讓我們的Activity去現實此介面,並重寫onDoubleTap、onDoubleTapEvent、onSingleTapConfirmed方法。示範代碼如下:

@Override
public boolean onDoubleTap(MotionEvent arg0) {
Toast.makeText(this, "觸發雙擊回調", TIME_OUT).show();
return false;
}

@Override
public boolean onDoubleTapEvent(MotionEvent arg0) {
Toast.makeText(this, "觸發雙擊的按下跟抬起回調", TIME_OUT).show();
return false;
}

@Override
public boolean onSingleTapConfirmed(MotionEvent arg0) {
Toast.makeText(this, "觸發單擊確認回調", TIME_OUT).show();
return false;
}

5. android文字橫向滾動的自定義view

TextView實現文字滾動需要以下幾個要點: 1.文字長度長於可顯示範圍:android:singleLine=」true」 2.設置可滾到,或顯示樣式
TextView實現文字滾動需要以下幾個要點:
1.文字長度長於可顯示範圍:android:singleLine=」true」
2.設置可滾到,或顯示樣式:android:ellipsize=」marquee」
3.TextView只有在獲取焦點後才會滾動顯示隱藏文字,因此需要在包中新建一個類,繼承TextView。重寫isFocused方法,這個方法默認行為是,如果TextView獲得焦點,方法返回true,失去焦點則返回false。跑馬燈效果估計也是用這個方法判斷是否獲得焦點,所以把它的返回值始終設置為true。
自定義一個
AlwaysMarqueeTextView 類
public class AlwaysMarqueeTextView extends TextView { public AlwaysMarqueeTextView(Context context) { super(context); } public AlwaysMarqueeTextView(Context context, AttributeSet attrs) { super(context, attrs); } public AlwaysMarqueeTextView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); } @Override public boolean isFocused() { return true; }
在布局XML文件中加入這么一個AlwaysMarqueeTextView,這個加入方法也是剛剛學的。
<com.examples.AlwaysMarqueeTextView android:id=「@+id/AMTV1″ android:layout_width=「fill_parent」 android:layout_height=「wrap_content」 android:lines=「1″ android:focusable=「true」 android:focusableInTouchMode=「true」 android:scrollHorizontally=「true」 android:marqueeRepeatLimit=「marquee_forever」 android:ellipsize=「marquee」 android:background=「@android:color/transparent」 />
ellipsize屬性
設置當文字過長時,該控制項該如何顯示。有如下值設置:」start」—–省略號顯示在開頭;」end」——省略號顯示在結尾;」middle」—-省略號顯示在中間;」marquee」 ——以跑馬燈的方式顯示(動畫橫向移動)
marqueeRepeatLimit屬性
在ellipsize指定marquee的情況下,設置重復滾動的次數,當設置為marquee_forever時表示無限次。
focusable屬性
自己猜測的,應該是能否獲得焦點,同樣focusableInTouchMode應該是滑動時能否獲得焦點。
組合View的問題:
< LinearLayout xmlns:android =「http://schemas.android.com/apk/res/android」 android:orientation =「vertical」 android:gravity =「center_vertical」 android:background =「@drawable/f_background」 android:layout_width =「fill_parent」 android:focusable =「true」 android:layout_height =「50px」 > < TextView android:id =「@+id/info_text」 android:focusable =「true」 android:layout_width =「fill_parent」 android:layout_height =「wrap_content」 android:text =「test marquee .. 「 android:textColor =「@color/black」 android:singleLine =「true」 android:ellipsize =「marquee」 android:marqueeRepeatLimit =「3″ android:textSize =「18sp」 /> < TextView android:id =「@+id/date_text」 android:layout_width =「fill_parent」 android:layout_height =「wrap_content」 android:layout_gravity =「bottom」 android:textColor =「@color/gray」 android:text =「2010/05/28″ android:textSize =「12sp」 /> </ LinearLayout >
上面示例中2個TextView組合為一個View,由於設置了LinearLayout為focusable而TextView就沒法取得焦點了,這樣 這個TextView的跑馬燈效果就顯示不出來,就算你也設置TextView的

6. android TextView文本動畫橫向移動時間

TextView實現文字滾動需要以下幾個要點:
1.文字長度長於可顯示範圍:android:singleLine="true"
2.設置可滾到,或顯示樣式:android:ellipsize="marquee"
3.TextView只有在獲取焦點後才會滾動顯示隱藏文字,因此需要在包中新建一個類,繼承TextView。重寫isFocused方法,這個方法默認行為是,如果TextView獲得焦點,方法返回true,失去焦點則返回false。跑馬燈效果估計也是用這個方法判斷是否獲得焦點,所以把它的返回值始終設置為true。

Java語言: AlwaysMarqueeTextView 類
public class AlwaysMarqueeTextView extends TextView {
public AlwaysMarqueeTextView(Context context) {
super(context);
}
public AlwaysMarqueeTextView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public AlwaysMarqueeTextView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
@Override
public boolean isFocused() {
return true;
}
在布局XML文件中加入這么一個AlwaysMarqueeTextView,這個加入方法也是剛剛學的。
XML語言: layout.xml
<com.examples.AlwaysMarqueeTextView
android:id=「@+id/AMTV1″
android:layout_width=「fill_parent」
android:layout_height=「wrap_content」
android:lines=「1″
android:focusable=「true」
android:focusableInTouchMode=「true」
android:scrollHorizontally=「true」
android:marqueeRepeatLimit=「marquee_forever」
android:ellipsize=「marquee」
android:background=「@android:color/transparent」
/>
ellipsize屬性
設置當文字過長時,該控制項該如何顯示。有如下值設置:」start」—–省略號顯示在開頭;」end」——省略號顯示在結尾;」middle」—-省略號顯示在中間;」marquee」 ——以跑馬燈的方式顯示(動畫橫向移動)
marqueeRepeatLimit屬性
在ellipsize指定marquee的情況下,設置重復滾動的次數,當設置為marquee_forever時表示無限次。
組合View的問題:
XML語言: 組合View
< LinearLayout
xmlns:android =「http://schemas.android.com/apk/res/android」
android:orientation =「vertical」
android:gravity =「center_vertical」
android:background =「@drawable/f_background」
android:layout_width =「fill_parent」
android:focusable =「true」
android:layout_height =「50px」 >
< TextView
android:id =「@+id/info_text」
android:focusable =「true」
android:layout_width =「fill_parent」
android:layout_height =「wrap_content」
android:text =「test marquee .. 「
android:textColor =「@color/black」
android:singleLine =「true」
android:ellipsize =「marquee」
android:marqueeRepeatLimit =「3″
android:textSize =「18sp」
/>
< TextView
android:id =「@+id/date_text」
android:layout_width =「fill_parent」
android:layout_height =「wrap_content」
android:layout_gravity =「bottom」
android:textColor =「@color/gray」
android:text =「2010/05/28″
android:textSize =「12sp」
/>
</ LinearLayout >
上面示例中2個TextView組合為一個View,由於設置了LinearLayout為focusable而TextView就沒法取得焦點了,這樣 這個TextView的跑馬燈效果就顯示不出來,就算你也設置TextView的 android:focusable="true" 也是 沒用的. 這個時候就要使用addStatesFromChildren 這個屬性了,在LinearLayout中設置這個屬性,然後設置TextView的focusable= "true" 就可以了.關於 addStatesFromChildren的說明:
Sets whether this ViewGroup's drawable states also include its children's drawable states.

7. android 如何實現listview可同時縱向,橫向滾動

gallery 裡面套入 多個 自定義 view 然後裡面 放ListView~

8. Android中TextView如何實現水平和垂直滾動

殤 殤雲的專欄 雲的專欄 軟體開發鋒顫 軟體開發 一 一、只想讓TextView顯示一行,但是文字超過 、只想讓TextView顯示一行,但是文字超過 在開頭顯示省略號 android:singleLine="true" android:ellipsize="start" 在結尾顯示省略號 android:singleLine="true" android:ellipsize="end" 在中間顯示省略號 android:singleLine="true" android:ellipsize="middle" 橫向自動滾動(跑馬燈效果)段裂 android:singleLine="true" android:ellipsize="marquee" android:marqueeRepeatLimit="marquee_forever" android:focusable="true" android:focusableInTouchMode="true" 以上4個效果都要加上�0�2android:singleLine="true",因為TextView默認是會自動換行的 android:marqueeRepeatLimit="marquee_forever"是設置銀燃敗永遠重復,當然你也可以設置具體的數字 android:focusable="true"和android:focusableInTouchMode="true"一定要加上,不然滾動效果出不來在Java代碼中加入下面一句話就可以實現垂直滾動

9. android實現上下滑動

布局最外包一層滾動條

<ScrollView
android:id="@+id/scrollView1"
android:layout_width="match_parent"
android:layout_height="wrap_content">

<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
</LinearLayout>
</ScrollView>
強制橫豎屏
在配置文件中對Activity節點添加android:screenOrientation屬性(landscape是橫向,portrait是縱向)

10. androidstudio怎麼進行方法重寫的快捷鍵

Android Studio常用快捷鍵 1. Ctrl+D: 集合了復制和粘貼兩個操作,如果有選中的部分就復制選中的部分,並在選中部分的後面 粘貼出來,如果沒有選中的部分,就復制游標所在的行,並在此行的下面粘貼出來。 2. Ctrl+空格: 輸入代碼時按此組合鍵會列出與之相匹配的類、方法名、成員變數等,起智能提示的作用。 在編輯XML文件一樣有用。 3. Ctrl+向下箭頭 或Ctrl+向上箭頭:在有自動匹配下拉列表時,此快捷鍵會自動關掉下拉列表, 游標移動到下/上一行。 4. 自動匹配下拉列表的排列方式的切換:在自動匹配下拉列表的右下角有個「π」圖標,點擊後可選 是按:實用性、字母兩種排列方式。 5. Ctrl+斜杠 、Ctrl+shift+斜杠: Ctrl+斜杠:注釋或取消注釋當前行或選中的代碼塊,以雙斜杠的方式即「//」 Ctrl+shift+斜杠:注釋或取消注釋選中的代碼塊,以「/*……*/」方式注釋, 6. Ctrl+shift+Enter:自動匹配相對應的語法結構,比如if,do-while,try-catch等結構。 7. Ctrl+F:搜索 8. Ctrl+句點:在自動匹配下拉列表中,選中第一個item 9. 感嘆號:在自動匹配下拉列表中,上下鍵選中一個返回結果為boolean的item,按感嘆號會自動取反: 10. Ctrl+Enter :在自動匹配下拉列表中,在沒有選中的item時,默認選中第一個item。 11. Ctrl+shift+A:快速查找android studio中的菜單。 12. Ctrl+N:快速查找類名、文件 13. Ctrl+B:直接跳轉到類、方法、成員變數定義的地方。與Ctrl+滑鼠左鍵效果一樣 14. Ctrl+Alt+B:查詢有哪些類實現了游標所在的介面。 15. Ctrl+Alt+shift+I:檢測代碼,比如檢測一些定義了,但沒有使用過的變數或方法。檢測的目的是為了提高代碼效率。 16.Ctrl+Alt+shift+N :快速打開輸入的方法或變數。 17.Ctrl+shift+F7:以高亮的形式標志處一些相關的東西,這里主要由三種情況:1.游標的位置在implement時, 會把類實現了介面的方法名給標志出來;2.游標的位置在return時,會標志出方法的所有退出的地方; 3.游標在try或者throws關鍵字處時,會標志出會產生異常的語句。 18.shift+滑鼠滾動:可實現編輯界面的橫向滾動。 19.Ctrl+Alt+V:調用方法時傳入的參數是比較復雜的表達式時,可用此組合鍵重構變數,以簡化代碼的復雜度。 在組合鍵之前要先選中表達式。 20. Ctrl+D:比較兩個jar文件,在同一工程中,選中兩個jar文件,按此組合鍵 21.Ctrl+O:子類想重寫父類的方法時,按此組合鍵可顯示所有父類的方法。介面對應的組合鍵時Ctrl+I。 22.Ctrl+shift+I:快速查看方法體,想查看一個方法是如何實現的,可把游標移至方法處,按此組合鍵。 23.Ctrl+Q:把游標移至方法處,按此組合鍵可快速查看方法的說明文檔。 24.Ctrl+~:切換編輯界面的風格,快捷鍵設計 25.Alt+shift+C:查看工程的最近修改。 26.Ctrl+E:快速查看最近打開打開過的文件。 27.shift+F6:可對類、方法、變數進行重命名,使用的地方會自動更新名字。 28.Alt+F1:快速打開project view、structure view 等查看相應的元素。 29.Ctrl+Alt+F7:查看一個類、方法、成員變數在整個工程中的使用情況。 30.Ctrl+shift+空格:在賦值或者是在方法中要傳入參數時,列出類型匹配的方法名、成員變數名。 31.Ctrl+Alt+T:選中一塊代碼,按此組合鍵,可快速添加if 、for、try/catch等語句。 32.Ctrl+Tab:打開界面切換窗口,保持按住Ctrl鍵,選中相應的要打開的窗口。 33.Ctrl+W:選中游標所在的所在的單詞(一個成員變數或者是一個方法名),多按一次會選中所在的語句, 再多按一次會選中所在的代碼塊。。。依次類推,每增加一次會擴大一級選中的范圍。

熱點內容
java小數正則表達式 發布:2025-05-20 11:30:58 瀏覽:136
文件夾加密win7 發布:2025-05-20 11:27:46 瀏覽:837
壓縮文件設置密碼有什麼意思 發布:2025-05-20 11:26:37 瀏覽:551
造夢西遊qq登錄如何修改密碼 發布:2025-05-20 11:18:36 瀏覽:382
淘寶緩存清理後還是大 發布:2025-05-20 11:15:39 瀏覽:149
ios雲存儲自動訂購 發布:2025-05-20 11:06:22 瀏覽:110
編程與數學 發布:2025-05-20 11:01:23 瀏覽:444
asp連接遠程資料庫 發布:2025-05-20 10:50:20 瀏覽:390
一般電腦配置哪個好 發布:2025-05-20 10:40:58 瀏覽:603
我的世界擼樹伺服器 發布:2025-05-20 10:33:37 瀏覽:742