在 CustomListAdapter 的 getView 方法中更改 TextView GRAVITY
change TextView GRAVITY in getView method of CustomListAdapter
我有一个带有三个文本视图的 customListAdapter,我想要的是当满足特定条件时,所有三个文本视图的 GRAVITY 应该反转,如代码中的注释所示。我只发布 customAdapter 而不是剩余的代码,因为它是无关紧要的。
public class CustomListAdapter extends BaseAdapter {
private ArrayList<NewsItem> listData;
private LayoutInflater layoutInflater;
public CustomListAdapter(Context aContext, ArrayList<NewsItem> listData) {
this.listData = listData;
layoutInflater = LayoutInflater.from(aContext);
}
@Override
public int getCount() {
return listData.size();
}
@Override
public Object getItem(int position) {
return listData.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if (convertView == null) {
convertView = layoutInflater.inflate(R.layout.list_row_layout, null);
holder = new ViewHolder();
holder.headlineView = (TextView) convertView.findViewById(R.id.title);
holder.reporterNameView = (TextView) convertView.findViewById(R.id.reporter);
holder.reportedDateView = (TextView) convertView.findViewById(R.id.date);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
if (some condition true){
// reverse GRAVITY of all TEXTVIEWS
}
holder.headlineView.setText(listData.get(position).getHeadline());
holder.reporterNameView.setText("By, " + listData.get(position).getReporterName());
holder.reportedDateView.setText(listData.get(position).getDate());
return convertView;
}
static class ViewHolder {
TextView headlineView;
TextView reporterNameView;
TextView reportedDateView;
}
}
在你的情况下设置重力:
if (some condition true){
holder.headlineView.setGravity(Gravity.LEFT);
}
你可以这样做
holder.headlineView.setGravity(Gravity.CENTER);
holder.reporterNameView.setGravity(Gravity.CENTER|Gravity.RIGHT);
希望对您有所帮助!
在您的 if 语句中,您可以通过编程方式更改重力:
if (some condition true){
// reverse GRAVITY of all TEXTVIEWS
holder.headlineView.setGravity(Gravity.CENTER | Gravity.BOTTOM);
holder.reporterNameView.setGravity(Gravity.LEFT| Gravity.TOP);
holder.reportedDateView.setGravity(Gravity.RIGHT| Gravity.BOTTOM);
}
我有一个带有三个文本视图的 customListAdapter,我想要的是当满足特定条件时,所有三个文本视图的 GRAVITY 应该反转,如代码中的注释所示。我只发布 customAdapter 而不是剩余的代码,因为它是无关紧要的。
public class CustomListAdapter extends BaseAdapter {
private ArrayList<NewsItem> listData;
private LayoutInflater layoutInflater;
public CustomListAdapter(Context aContext, ArrayList<NewsItem> listData) {
this.listData = listData;
layoutInflater = LayoutInflater.from(aContext);
}
@Override
public int getCount() {
return listData.size();
}
@Override
public Object getItem(int position) {
return listData.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if (convertView == null) {
convertView = layoutInflater.inflate(R.layout.list_row_layout, null);
holder = new ViewHolder();
holder.headlineView = (TextView) convertView.findViewById(R.id.title);
holder.reporterNameView = (TextView) convertView.findViewById(R.id.reporter);
holder.reportedDateView = (TextView) convertView.findViewById(R.id.date);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
if (some condition true){
// reverse GRAVITY of all TEXTVIEWS
}
holder.headlineView.setText(listData.get(position).getHeadline());
holder.reporterNameView.setText("By, " + listData.get(position).getReporterName());
holder.reportedDateView.setText(listData.get(position).getDate());
return convertView;
}
static class ViewHolder {
TextView headlineView;
TextView reporterNameView;
TextView reportedDateView;
}
}
在你的情况下设置重力:
if (some condition true){
holder.headlineView.setGravity(Gravity.LEFT);
}
你可以这样做
holder.headlineView.setGravity(Gravity.CENTER);
holder.reporterNameView.setGravity(Gravity.CENTER|Gravity.RIGHT);
希望对您有所帮助!
在您的 if 语句中,您可以通过编程方式更改重力:
if (some condition true){
// reverse GRAVITY of all TEXTVIEWS
holder.headlineView.setGravity(Gravity.CENTER | Gravity.BOTTOM);
holder.reporterNameView.setGravity(Gravity.LEFT| Gravity.TOP);
holder.reportedDateView.setGravity(Gravity.RIGHT| Gravity.BOTTOM);
}