2015-08-10 6 views
8

Я делаю список WearableListView. Проблема в том, что установка android: layout_height = "20dp" не помогает enter image description hereКак установить высоту элемента WearableListView

Как установить высоту в этом случае? В примерах проектов Android Wear «Уведомления и таймер» они также просто установили атрибут android: layout_height = «80dp». Но я попытался установить в проектах android: layout_height = "20dp", но это не помогло! (Ниже мой проект исходный код):

list_item.xml:

<?xml version="1.0" encoding="utf-8"?> 
<base.mobitee.com.mobiteewatch.adapter.HolesListItemLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="20dp" 
    android:gravity="center_vertical" > 

    <TextView 
     android:id="@+id/text_hole" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:fontFamily="sans-serif-light" 
     android:gravity="center" 
     android:textSize="@dimen/list_item_text_size" /> 
</base.mobitee.com.mobiteewatch.adapter.HolesListItemLayout> 

HolesListItemLayout.java:

общественный класс HolesListItemLayout расширяет LinearLayout реализует WearableListView.OnCenterProximityListener { частное TextView mName; закрытый финал int mFadedTextColor; закрытый конечный int mChosenTextColor;

public HolesListItemLayout(Context context) { 
    this(context, null); 
} 

public HolesListItemLayout(Context context, AttributeSet attrs) { 
    this(context, attrs, 0); 
} 

public HolesListItemLayout(Context context, AttributeSet attrs, 
          int defStyle) { 
    super(context, attrs, defStyle); 
    mFadedTextColor = getResources().getColor(R.color.grey); 
    mChosenTextColor = getResources().getColor(R.color.black); 
} 

// Get references to the icon and text in the item layout definition 
@Override 
protected void onFinishInflate() { 
    super.onFinishInflate(); 
    mName = (TextView) findViewById(R.id.text_hole); 
} 

@Override 
public void onCenterPosition(boolean animate) { 
    mName.setTextSize(18); 
    mName.setTextColor(mChosenTextColor); 
} 

@Override 
public void onNonCenterPosition(boolean animate) { 
    mName.setTextColor(mFadedTextColor); 
    mName.setTextSize(14); 
} 

}

HolesListAdapter.java:

public class HolesListAdapter extends WearableListView.Adapter { 
    private final Context mContext; 
    private final LayoutInflater mInflater; 

    public HolesListAdapter(Context context) { 
     this.mContext = context; 
     mInflater = LayoutInflater.from(context); 
    } 

    @Override 
    public WearableListView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { 
     return new WearableListView.ViewHolder(
       mInflater.inflate(R.layout.list_item_hole, null)); 
    } 

    @Override 
    public void onBindViewHolder(WearableListView.ViewHolder holder, int position) { 
     TextView text = (TextView) holder.itemView.findViewById(R.id.text_hole); 
     text.setText(mContext.getString(R.string.hole_list_item) + " " + (position + 1)); 
     text.setTextColor(mContext.getResources().getColor(android.R.color.black)); 
     holder.itemView.setTag(position); 
    } 

    @Override 
    public int getItemCount() { 
     return Preferences.HOLES; 
    } 
} 

ответ

-1

Я получил идею. Вставьте список в контейнер FrameLayout. И, изменяя высоту, высота элемента списка контейнера изменяется. Результат:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="@android:color/white"> 

    <FrameLayout 
     android:layout_width="match_parent" 
     android:layout_height="90dp" 
     android:layout_centerInParent="true"> 

     <android.support.wearable.view.WearableListView 
      android:id="@+id/wearable_list_game_options" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:dividerHeight="0dp" 
      android:scrollbars="none"/> 
    </FrameLayout> 

</RelativeLayout> 

enter image description here

6

WearableListView жестко закодирован отображать только три пункта, в то время - он измеряет высоту элемента путем деления высоты представления списка путем три ... так что не практический способ делать то, что вы хотите.

Я предлагаю сделать больше шрифт текста ...

+0

Crud, это руины мои планы использовать его для моего экрана конфигурации, но это хорошо знать. Теперь мне нужно снова искать взгляды. – Trejkaz

-1

Добавьте одну LinearLayout внутри и установить

андроида: layout_height = "50dp" андроид: layout_margin = "5 диоптрий"

Смежные вопросы