Android 水平滚动视图子项不可见
我有一个水平滚动视图,在say MainMenuActivity中有一个线性布局,我用3个按钮填充它。让我们称之为State1Android 水平滚动视图子项不可见,android,cocos2d-x,horizontalscrollview,Android,Cocos2d X,Horizontalscrollview,我有一个水平滚动视图,在say MainMenuActivity中有一个线性布局,我用3个按钮填充它。让我们称之为State1 A B C 单击其中一个按钮-->可从线性布局中删除这些按钮,并将其他3个自定义视图添加到同一线性布局中。让我们称之为State2 E F G 单击任意一个E F G将启动另一个活动。为了从状态1转到状态2,我为每个EFG膨胀视图,并将这些视图添加到LinearLayout 我的问题:回到主菜单活
A B C
单击其中一个按钮-->可从线性布局中删除这些按钮,并将其他3个自定义视图添加到同一线性布局中。让我们称之为State2
E F G
单击任意一个E F G将启动另一个活动。为了从状态1转到状态2,我为每个EFG膨胀视图,并将这些视图添加到LinearLayout
我的问题:回到主菜单活动后,我希望ScrollView显示EFG。由于其他原因,它没有显示EFG(我使用Cocos2dx)。它显示一个B C
当从任何活动返回主菜单时,我可以为状态2膨胀视图,但视图在屏幕上不可见。LinearLayout应有3个子对象,但它们不可见。事实上,整个线性布局是不可见的
它第一次工作(从ABC到EFG)。但这已经不是我第二次直接到达EFG州了
我的水平滚动视图如下所示
<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>
这就是我如何为efg填充滚动视图
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");
private void fillScrollViewWithRoomList(ArrayList roomArr){
Log.d(“MainAct”,“fillScrollViewWithRoomList:+roomArr.toString());
HorizontalScrollView主菜单滚动=(HorizontalScrollView)findViewById(R.id.mainHZScrollView);
LinearLayout scrollInnerLayout=(LinearLayout)主菜单滚动.findViewById(R.id.scrollInnerLayout);
//删除现有内容
scrollInnerLayout.removeAllViews();
对于(int i=0;i
}
在onResume()中,我检查在ScrollView中显示什么。roomArr的数据来自服务器。从onResume()发送的请求。我在handler和display中解析它。所以一切都是在UI线程上完成的。roomArr打印所有值,inScrollChildCnt=3,这是roomArr的计数。将android:fillViewport=“true”添加到水平滚动视图中。不工作。返回活动后,您使用哪种方法绘制视图?简历?重新启动?请把代码贴出来