Horizo​​ntalScrollView子项不可见

时间:2013-03-14 06:28:21

标签: android cocos2d-x horizontalscrollview

我有一个带有LinearLayout的Horizo​​ntalScrollView作为一个孩子,比如MainMenuActivity,我用3个按钮填充。让我们称之为State1。

A         B           C

点击其中一个按钮 - >从LinearLayout中删除这些按钮,并将其他3个自定义视图添加到同一LinearLayout。让我们称之为State2

E         F          G

点击任何一个E F G启动另一项活动。为了从state1转到state2,我为每个E F G充气View并将这些视图添加到LinearLayout。

我的问题:在回到我的MainMenu活动之后,我希望ScrollView显示E F G.由于其他原因(我进入Cocos2dx)它没有。它显示了A B C.

当从任何活动回到MainMenu时,我能够为State2充气,但视图在屏幕上不可见。 LinearLayout有3个子节点,但它们不可见。事实上,整个LinearLayout都不可见。

它第一次工作(从A B C到E F G)。但不是我第二次直接进入E F G州

我的Horizo​​ntalScrollView看起来像这样

<HorizontalScrollView
      android:id="@+id/mainHZScrollView"
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:layout_weight="1" 
      android:clipChildren="true"
      android:scrollbars="none"
      android:background="@android:color/black">

      <LinearLayout
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:orientation="horizontal"
         android:isScrollContainer="true"
          android:layout_gravity="center_vertical"
          android:id="@+id/scrollInnerLayout"
          android:background="@android:color/white">

      </LinearLayout>

  </HorizontalScrollView>

这就是我为E F G填写ScrollView的方法。

private void fillScrollViewWithRoomList(ArrayList<HashMap<String, String>> roomArr){
    Log.d("MainAct",  "fillScrollViewWithRoomList: "+roomArr.toString());

    HorizontalScrollView mainMenuScroll = (HorizontalScrollView) findViewById(R.id.mainHZScrollView);
    LinearLayout scrollInnerLayout = (LinearLayout) mainMenuScroll.findViewById(R.id.scrollInnerLayout);

     //Remove Existing Contents
    scrollInnerLayout.removeAllViews();

    for (int i = 0; i < roomArr.size(); i++) {
        Log.d("MainAct",  "fillScrollViewWithRoomList  For Loop ");

        View roomView = View.inflate(this, R.layout.room_view, null);

        /*
         * Get contents from ArrayList and 
         * Fill roomView TextViews Here 
         */             

        scrollInnerLayout.addView(roomView);
    }

    int inScrollChildCnt = scrollInnerLayout.getChildCount();
    Log.d("MainAct",  "inScrollChildCnt  "+ inScrollChildCnt);
    Log.d("MainAct",  "fillScrollViewWithRoomList Complete");

}

在onResume()中,我检查在ScrollView中显示的内容。 roomArr的数据来自服务器。请求从onResume()发送。我在处理程序和显示中解析它。所以一切都在UI线程上完成。 roomArr打印所有值和inScrollChildCnt = 3,这是roomArr的计数。

0 个答案:

没有答案