LinearLayout在setLayoutParams之后没有更新

时间:2014-03-06 17:40:08

标签: android android-linearlayout layoutparams

我试图通过设置每个单元格在运行时将包含的LinearLayout的高度和宽度来使GridView的单元格具有相同的宽度和高度。

我已经检查过cellDim实际上正在返回一个值。我不知道为什么布局没有显示它的变化。

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle onSavedInstanceState) {

    int cellDim;
    int spacing;
    int numColumns;
    Display display;

    if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {
        numColumns = 4;
    } else {
        numColumns = 2;
    }

    display = getSherlockActivity().getWindowManager().getDefaultDisplay();
    spacing = Utils.dpToPixels(10, getSherlockActivity());
    cellDim = (display.getWidth() - ((spacing * numColumns) + 1)) / numColumns;

    LinearLayout cellLayout = (LinearLayout) getSherlockActivity().getLayoutInflater().inflate(R.layout.goal_info, null); 
    LinearLayout.LayoutParams cellParams = new LinearLayout.LayoutParams(cellDim, cellDim);
    cellLayout.setLayoutParams(cellParams);

    LinearLayout layout = (LinearLayout) inflater.inflate(R.layout.goal_tracker, container, false);

    gridView = (GridViewCompat) layout.findViewById(R.id.goal_view);

    Button newEntryButton = (Button)layout.findViewById(R.id.btn_new_goal);
    newEntryButton.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View view) {

        }

    });
    return layout;
}

欢呼帮助。

编辑:以下是正在引用的布局。

goal_tracker:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >

<com.rokoder.android.lib.support.v4.widget.GridViewCompat
    android:id="@+id/goal_view"
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"
    android:numColumns="4"
    android:verticalSpacing="10dp"
    android:horizontalSpacing="10dp"
    android:stretchMode="columnWidth"
    android:gravity="center" >    
</com.rokoder.android.lib.support.v4.widget.GridViewCompat>

<LinearLayout
    android:id="@+id/layout_buttons"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" >

    <Button
        android:id="@+id/btn_new_goal"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/str_new_goal" />
</LinearLayout>

goal_info:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/goal_info"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="centerInside"
android:orientation="vertical"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >

<TextView 
    android:id="@+id/info_title"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"/>

0 个答案:

没有答案