2012-05-22 29 views
0

我在TabHost中使用片段类。该片段膨胀一个KeyboardView这样的:Android的KeyboardView中未调整大小的片段

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
     if (container == null) 
      return null; 
     View v = inflater.inflate(R.layout.main_keyboard, container, false); 

也能正常工作的第一次onCreateView()被调用(当应用程序加载)。然而,随后的屏幕旋转(运行时配置更改)无法正常重新大小的KeyboardView到横向/纵向:

enter image description hereenter image description here

main_keyboard.xml你可以看到KeyboardView底部被引用: `

<LinearLayout 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:orientation="vertical" > 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center" 
     android:gravity="center" > 

     <RelativeLayout 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:paddingRight="10dip" > 

      <TextView 
       android:id="@+id/kbd_header" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:paddingRight="10dip" 
       android:text="@string/keyboard_type" /> 

      <TextView 
       android:id="@+id/kbd_type" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_below="@id/kbd_header" 
       android:text="@string/russian" 
       android:textColor="#FF0000" 
       android:textStyle="bold" /> 
     </RelativeLayout> 

     <ImageButton 
      android:id="@+id/btnRussian" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_marginRight="10dip" 
      android:contentDescription="@string/russian_keyboard" 
      android:src="@drawable/russia" /> 

     <ImageButton 
      android:id="@+id/btnEnglish" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_marginRight="10dip" 
      android:contentDescription="@string/english_keyboard" 
      android:src="@drawable/america" 
      /> 

     <ImageButton 
      android:id="@+id/btnCombined" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:contentDescription="@string/combined" 
      android:src="@drawable/combined" /> 

    </LinearLayout> 

<com.eazyigz.RussiaMediaSearch.CustomKeyboardView 
    android:id="@+id/keyboard_view" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_alignParentBottom="true" 
    android:layout_margin="0px" 
    android:padding="0px" > 
</com.eazyigz.RussiaMediaSearch.CustomKeyboardView> 

是否有人对如何使KeyboardView正确调整思路?

谢谢 伊戈尔

回答

0

问题解决了:我用的是: if (savedInstanceState != null)onCreateView,每一个屏幕旋转的时间没有创造新的键盘对象。所以这就是为什么键盘没有调整大小。为了解决这个问题,我需要每次运行这样的代码:

mKeyboard = new Keyboard(getActivity(), R.xml.keyboard);