- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经为 ExpandableListView 的双重渲染问题苦苦挣扎了几个小时。我浏览了 stackoverflow 上的文档和问题,建议我将可扩展 ListView 的高度设置为 fill_parent
或 match_parent
但到目前为止没有任何效果。
查看代码如下:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:background="@color/white">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/rlQnaContainer">
<ExpandableListView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/elQnAList"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_above="@+id/llAskQuestionContainer"
android:groupIndicator="@null"
android:layout_alignParentTop="true"
android:layout_alignTop="@+id/llAskQuestionContainer"/>
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@id/llAskQuestionContainer"
android:gravity="center"
android:id="@+id/tvNoQuestions"
android:visibility="gone"
android:text="@string/company_qna_no_questions_text"/>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white"
android:orientation="vertical"
android:id="@+id/llAskQuestionContainer"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true">
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/lightgrey"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
/>
<Button
android:layout_margin="16dp"
android:id="@+id/btAskQuestion"
style="@style/HRTheme.ButtonPrimary"
android:text="@string/company_qna_ask_question"
/>
<ProgressBar
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:visibility="gone"
android:id="@+id/pbAskQuestionProgressBar"/>
</RelativeLayout>
</RelativeLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:visibility="gone"
android:background="@color/white"
android:id="@+id/llProgressBarContainer">
<ProgressBar
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:visibility="visible"
android:id="@+id/pbProgressBar"
/>
</RelativeLayout>
<include layout="@layout/generic_loader_and_no_connection" />
</FrameLayout>
适配器代码如下:
public class CompanyQnAExpandableListAdapter extends BaseExpandableListAdapter {
List<QnA> qnas = new ArrayList<>();
Context context;
HeaderViewHolder headerViewHolder;
ChildViewHolder childViewHolder;
public void addNewQuestion(QnA qna) {
qnas.add(0, qna);
notifyDataSetChanged();
}
class HeaderViewHolder {
TextView tvQuestion;
}
class ChildViewHolder {
TextView tvAnswer;
TextView tvByText;
}
public CompanyQnAExpandableListAdapter(Context context, List<QnA> listQnA) {
this.context = context;
this.qnas = listQnA;
}
public void addItems(List<QnA> qnas) {
qnas.addAll(qnas);
notifyDataSetChanged();
}
@Override
public int getGroupCount() {
return qnas.size();
}
@Override
public int getChildrenCount(int groupPosition) {
return qnas.size();
}
@Override
public Object getGroup(int groupPosition) {
QnA qna = qnas.get(groupPosition);
return qna;
}
@Override
public Object getChild(int groupPosition, int childPosition) {
QnA qna = qnas.get(childPosition);
return qna;
}
@Override
public long getGroupId(int groupPosition) {
return groupPosition;
}
@Override
public long getChildId(int groupPosition, int childPosition) {
return childPosition;
}
@Override
public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) {
QnA qna = qnas.get(groupPosition);
if (convertView == null) {
LayoutInflater inflater = (LayoutInflater) this.context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(R.layout.expandable_list_group_header_qna, null);
headerViewHolder = new HeaderViewHolder();
headerViewHolder.tvQuestion = (TextView) convertView.findViewById(R.id.tvHeaderQuestion);
convertView.setTag(headerViewHolder);
} else {
headerViewHolder = (HeaderViewHolder) convertView.getTag();
}
headerViewHolder.tvQuestion.setText(qna.question);
return convertView;
}
@Override
public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {
QnA qna = qnas.get(childPosition);
if (convertView == null) {
LayoutInflater inflater = (LayoutInflater) this.context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(R.layout.expandable_list_qna_item, null);
childViewHolder = new ChildViewHolder();
childViewHolder.tvByText = (TextView) convertView.findViewById(R.id.tvQuestionMeta);
childViewHolder.tvAnswer = (TextView) convertView.findViewById(R.id.tvQnaAnswer);
convertView.setTag(childViewHolder);
} else {
childViewHolder = (ChildViewHolder) convertView.getTag();
}
if (qna.answered == QnA.ANSWERED) {
childViewHolder.tvByText.setText(qna.byText);
childViewHolder.tvAnswer.setText(qna.answer);
} else {
childViewHolder.tvByText.setVisibility(View.GONE);
childViewHolder.tvAnswer.setText(context.getString(R.string.qna_awaiting_answer));
}
return convertView;
}
@Override
public boolean isChildSelectable(int groupPosition, int childPosition) {
return false;
}
@Override
public boolean hasStableIds() {
return true;
}
}
这就是我调用设置适配器的方式:
adapter = new CompanyQnAExpandableListAdapter(getActivity(), qnas);
expandableListView.setAdapter(adapter);
如果有人能帮我弄清楚这里出了什么问题,那就太好了。提前谢谢你。
最佳答案
getGroupCount() 方法告诉您 ExpandableListView 中会有多少组,getChildrenCount(int groupPosition) 方法告诉您相应的子项有多少个组。
问题是您在这两种方法中返回的计数相同。我认为通过解决这个问题,您可能会摆脱这个问题。
关于java - Expandablelistview subview 呈现两次(尽管高度设置为 match_parent),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33226340/
我在自定义表格单元格中长按时添加 subview ,但是当我滚动表格时, subview 消失。 p> 我应该怎么做,以便当我向后滚动时,该 subview 仍然显示/出现在该单元格上,或者换句话说,
如何遍历 UIView 的所有 subview ,以及它们的 subview 和它们的 subview ? 最佳答案 使用递归: // UIView+HierarchyLogging.h @inter
如果我有 contentView 和 2 个 subview 。我想根据subviewB居中subviewA subviewA 和 subviewB 有相同的父 View 。 这就是我现在正在做的,将
我想向 self.view 添加一个覆盖整个区域的 subview (如调光 View )。但在它下面,有一些 View 我不希望受到添加的 subview 的影响(我不希望这些 View 具有变暗的
我正在尝试向 UITabBar 添加 subview ,它应该位于其他 UITabBar subview 之后。 我在 UITabBarController 的子类中添加了这样的 subview :
图像描述了我必须将这种 subview 添加到我现有的单元格中,并且在多次单击“添加”图标时还要添加相同的 subview 。 我在添加 subview 时遇到困难。如果有人能为我提供处理此结构的正确
我添加了一个 subview ,如下所示: func showPlayerView2() { self.view.frame = CGRect(x: 0, y: 0, width: view.
我的问题是关于 UIView/CALayer: Transform triggers layoutSubviews in superview 据报道,来自苹果的 TSI 回复: Generally,
我试图为我的主视图创建一个辅助 View 。这个 subview 需要很小的高度,它需要适合另一个带有标签的大 UIView。 问题是当我使用 UIView addSubview 时,第三个 UIVi
我正在尝试淡出整个 View ,但只有一个特定的 subview , 这将强调 subview更清晰的外观。假设 self.view 有 5 textfields和 2 UIView如subviews
我确信我在这里错过了一些愚蠢的东西,但我有 mainView、subviewA 和 subviewB。我试图将 subviewB 添加到 subviewA 并将其锚定在 subviewA 内部,但是它
我有一个包含 3 个 subview 的 View ,分别称为 view A、view B、view C。 当我删除 subview 时,意味着我需要自动设置边距以进行调整。 当我删除 view A
我有两个加载的 subview 。一个是位于 View Controller 内部的选项卡栏,它很早就加载,第二个是按下选项卡栏项目时出现的 View 。 但是,当添加此 subview 时,它会加载
在 iOS 应用中,我在主视图中添加了一个 subview : [self.view addSubview:firstUIImageSubview]; 但是在 subview 类 firstUIIma
我正在制作一个球程序,您可以通过长按手势将球 UIView subview 添加到 super View 。点击 View 会将其从父 View 中移除。 添加所有 View 效果很好,重新添加 Vi
我使用以下代码在单击按钮时将日期选择器 View 添加到我的应用程序主视图。 - (IBAction)CalenderButton_Click:(id)sender { // code to add
我正在努力向 View 添加 subview 。进度变量在其 View Controller 的 viewDidLoad() 中设置。 progressView frame size 设置正确,只是添
这是我的代码 var button = [UIButton?](count:3, repeatedValue: UIButton()) for i in 0...2{
我有一个 UIViewController,里面有几个不同的 UIView subview 。当用户调用某个 Action 时,我手动更改每个的大小、比例和位置。我想更新其中一个 UILabel( s
我的屏幕有一个主视图模型。它由 2 个 subview 模型组成。 其中一个负责注册部分。其中一个处理登录部分。其中一个负责处理菜单部分(如果经过身份验证,可以显示哪些菜单项,以及“欢迎“用户名”类型
我是一名优秀的程序员,十分优秀!