Добавление представления программно к FragmentActivity не работает - PullRequest
0 голосов
/ 28 июля 2011

У меня есть Activity, которая расширяет FragmentActivity (изначально она расширяла Activity, но я изменил это - причина не очень важна, но я включил это на случай, если это поможет отследить проблему).Часть отображаемой информации различается в зависимости от конкретной переменной, поэтому у меня есть LinearLayout в XML-формате макета для хранения этой информации и программно добавлен из этого класса.Раньше это работало нормально, но теперь перестало работать, и я не вижу никакой причины, почему.

Вот выдержка из файла:

public class FriendProfile extends FragmentActivity {
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.friendprofile);

        Intent intent = getIntent();
        userData = (ArrayList<String>)intent.getSerializableExtra("userData");
        String status = userData.get(4).trim();

        LinearLayout extras = (LinearLayout)findViewById(R.id.friendextra);
        LayoutParams params = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);

        if(status.equals("requester")) {
            Log.v(TAG, "requester");
            TextView view = new TextView(this);
            view.setText(R.string.requestpending);
            view.setLayoutParams(params);
            view.setGravity(Gravity.CENTER);
            extras.addView(view);
        }
    }
}

И выдержка из FriendprofileXML-файл:

<?xml version="1.0" encoding="utf-8"?>
    <LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/friendextra"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" 
        android:gravity="center"  
        android:orientation="vertical" >
    </LinearLayout>

Logcat не показывает ничего интересного - он определенно входит в блок if, потому что журнал выводит запросчик, но текстовое представление не отображается.Есть несколько значений, которые может принимать состояние, каждое из которых будет добавлять различные компоненты в макет, но ни одно из них не работает.Приложение не аварийно завершает работу или что-то в этом роде, оно просто не отображает компоненты.Кто-нибудь может помочь?

1 Ответ

0 голосов
/ 28 июля 2011

Я наконец-то отследил источник проблемы - в файле friendprofile.xml есть TableLayout о LinearLayout, а его высота была установлена ​​равной fill_parent. LinearLayout обновлялся правильно, но был вне экрана. Я изменил высоту TableLayout на wrap_content, и это решило половину проблемы.

Я все еще не мог отобразить текст, поэтому я поместил пустое представление текста в LinearLayout и просто программно установил текст, и это работало нормально.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...