2013-02-06 78 views
1

我有一個滾動視圖在我的XML,但滾動視圖應該只在手機的風景模式下工作,但不是在phone.can肖像模式,這是可能的,如果可能的話,所以我應該與XML文件或通過programmatically.if代碼需要去詢問me.Thanks滾動視圖只禁用在縱向模式中的Android

這裏是XML文件(肖像模式):

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:id="@+id/scrollview1" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:background="#1e90ff" 
    tools:context=".HomeActivity" 
    android:scrollbars="none" 
    > 

<LinearLayout 
    android:id="@+id/layout01" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:background="#a9a9a9" 
    android:orientation="vertical" > 

    <Button 
     android:id="@+id/button1" 
     android:layout_width="fill_parent" 
     android:layout_height="match_parent" 
     android:layout_marginLeft="1dp" 
     android:background="@drawable/my_tauky_button_img" /> 

    <Button 
     android:id="@+id/button2" 
     android:layout_width="fill_parent" 
     android:layout_height="match_parent" 
     android:layout_marginLeft="1dp" 
     android:background="@drawable/explore_button_img" 
     android:text="" /> 

    <Button 
     android:id="@+id/button3" 
     android:layout_width="fill_parent" 
     android:layout_height="match_parent" 
     android:layout_marginLeft="1dp" 
     android:background="@drawable/create_tauky_button_img" /> 

    <Button 
     android:id="@+id/button4" 
     android:layout_width="fill_parent" 
     android:layout_height="match_parent" 
     android:layout_marginLeft="1dp" 
     android:background="@drawable/my_blauky_button_img" /> 

    <Button 
     android:id="@+id/button5" 
     android:layout_width="fill_parent" 
     android:layout_height="match_parent" 
     android:background="@drawable/profile_button_img" /> 
</LinearLayout> 

</ScrollView> 
+0

發表您的xml文件 – R9J

回答

1

你的最簡單的辦法是檢查:

getResources().getConfiguration().orientation; 

onCreate()和禁用ScrollView如果方向是portrait。請參閱參考:http://developer.android.com/reference/android/content/res/Configuration.html#orientation

它的工作原理是默認Activities在配置更改(包括更改方向)上重新啓動,因此您不必監聽此事件。

只需修改您的onCreate()

@Override 
protected void onCreate(Bundle savedState) { 
    super.onCreate(savedState); 
    setContentView(R.layout.activity_layout); 

    // disable ScrollView in portrait mode 
    if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) { 
     ScrollView scrollView = (ScrollView)findViewById(R.id.scrollview1); 
     scrollView.setEnabled(false); 
    } 
} 

其中activity_layout是您的佈局文件名(不.xml擴展名)。而已!

+0

什麼是禁用它 – blackjack

+0

@blackjack看到更新的方法 - 代碼包括 – andr

0

創建肖像模式(把它放在你的默認的「佈局」文件夾),一個用於景觀(創建一個「佈局 - 土地」的文件夾,並把它放在那裏)兩種不同的XML layouts.one,和只添加滾動視圖在第二個。

+0

我想滾動視圖僅在橫向模式 – blackjack

+0

exactly.if你把滾動視圖僅在從「佈局土地」文件夾中的XML效果,你將有一個滾動的效果只能以橫向mode.You可以爲橫向模式創建不同的佈局和放置在'layout-land'文件夾中(您需要創建它),然後android會處理其餘部分。 –

0

試試這個,

scrollView.setVerticalScrollBarEnabled(false); 
0

試試這個代碼:)

switch (getResources().getConfiguration().orientation) { 
     case Configuration.ORIENTATION_PORTRAIT: 
      ScrollView scrollView = (ScrollView)findViewById(R.id.scrollview1); 
      scrollView.setEnabled(false); 
      break; 

} 
+0

android:啓用不在scrollview標籤 – blackjack

+0

我意識到了。錯誤的動作!改變它! :) – 2013-02-06 07:58:15

相關問題