【发布时间】:2016-09-22 18:39:56
【问题描述】:
我有一个列表视图,并且有这个项目样式
当我点击它的任何部分时,它全部被选中
但我想获得 Description 和 Action 1 和 Action 2
的单独效果这种风格:
我的 XML 项目
...
<LinearLayout android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:id="@+id/linearLayout"
android:layout_marginLeft="3dp">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="20sp"
android:id="@+id/txtDescription"
android:text="description" />
<!--this is one separator horizontal -->
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@android:color/darker_gray"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="50dp"
android:weightSum="100"
android:orientation="horizontal">
<LinearLayout android:layout_width="wrap_content"
android:layout_weight="50"
android:id="@+id/test1"
android:layout_height="match_parent">
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:id="@+id/txtAction1"
android:text="Action 1" />
</LinearLayout>
<!--this is one separator vertical-->
<View
android:layout_width="1dp"
android:layout_height="match_parent"
android:background="@android:color/darker_gray" />
<LinearLayout android:layout_width="wrap_content"
android:id="@+id/test2"
android:layout_height="match_parent">
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="50"
android:gravity="center"
android:id="@+id/txtAction2"
android:text="Action 2" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
...
我的 Java 类
//ViewHolder
static class ViewHolderItem {
public LinearLayout test1;
public LinearLayout test2;
}
//Adapter
class RoteiroAdapter extends BaseAdapter{
private Context mContext = null;
private List<ItemRoteiro> mListaRoteiro = null;
public RoteiroAdapter(Context context, List<ItemRoteiro> lista){
this.mContext = context;
this.mListaRoteiro = lista;
}
...
...
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolderItem viewHolder;
if(convertView == null){
LayoutInflater inflater = ((Activity) mContext).getLayoutInflater();
convertView = inflater.inflate(R.layout.item_roteiro, parent, false);
viewHolder = new ViewHolderItem();
viewHolder.test1= (LinearLayout) convertView.findViewById(R.id.txtTest1);
viewHolder.test2= (LinearLayout) convertView.findViewById(R.id.txtTest2);
convertView.setTag(viewHolder);
}
else{
viewHolder = (ViewHolderItem) convertView.getTag();
}
ItemRoteiro item = mListaRoteiro.get(position);
if(item != null) {
viewHolder.test1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
}
});
viewHolder.test2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
}
});
}
return convertView;
}
}
如何解决这个问题?谢谢!!
【问题讨论】:
-
我尝试过使用android:clickable = "false",但是没有成功,我想我用错了方法。
-
也许这里有解决方案,但我想不出任何办法。这个布局是否有任何理由需要在 ListView 而不是 ScrollView 中?如果它在 ScrollView 中,我认为这将成为一个更容易解决的问题。
-
谢谢@joebro,我看了这个link,但它对我不起作用。我考虑使用列表视图,因为信息将被加载到数据库中,它不会是“固定”的数量
-
我不太了解这里的细节,但通过动态创建布局并将它们以编程方式添加到 ScrollView 似乎可行。一些非常基本的伪代码,但类似这样:
RelativeLayout relativeLayout = new RelativeLayout(this); //add action1/2 buttons and description here RelativeLayout scrollViewContainer = findViewById(R.id.scrollViewContainer); //get reference to the direct and only child of the scrollview //append layout with buttons and description to scrollViewContainer -
谢谢@joebro 我会做这个测试。
标签: android android-layout listview